当前位置:首页 » 网页前端 » web安全学笔记
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web安全学笔记

发布时间: 2022-07-06 13:47:53

Ⅰ web安全测试个人阅读心得

文章中提到的东西都是工作中实践过的经验,并不保证全面性.
Web测试一般包含如下内容:
功能测试
性能测试
用户界面测试
兼容性测试
安全性测试
其实这只是大概的区分,各种不同的类别的测试之间其实是有很多交集的.比如:
当网站出现性能问题的时候,同时网站的某些功能可能会失效,比如页面打开失败,表单提交失败等等
当网站在一个它不兼容的浏览器下运行的时候,也会导致功能失效,用户界面出现混乱,甚至性能问题
以上的五项内容中的每一项都可以是一个大的主题做深入的分析.

另外,对于所有的web测试人员来说,学会使用Firebug以及Fiddler这样的抓包工具绝对是必不可少的。这些工具的使用应该始终贯穿的测试工作之中

一.功能测试
对于一般被测试的软件,我可以用"树"来比喻一个软件.一颗树有主干,分支和叶子.主干和分支代表软件的流程,叶子代表软件的局部步骤(页面). 我们测试软件的时候既要保证软件的流程正确,也要保证组成流程的各个分支步骤页面的正确性.
拿淘宝来购物来说,我们可以把登录页面,购物车页面之类的当成是叶子,完成一个购物流程,当成一个主干或者分支. 软件就是由这很多的叶子以及相对少一些的分支组成.
经典的教科书上往往会介绍如下功能测试测试用例的设计方法:
边界值划分
等价类
正交表
决策表
当我们测试单个页面的时候,往往会用到这些方法.但是这些方法只是测试到了软件的局部.
除此之外,我们还要考虑被测试软件的工作流程,保证所有的提供给用户的工作流程都可以跑通,这个时候,探索式测试可以派上用场.有时候,我们还需要化流程图来辅助测试.
关于探索式测试,详见探索式测试读书笔记一文

另外,还有更重要的几点:
每当打开页面或者提交数据的时候,多打开Fiddler或者Firebug看看到底发送了哪些http请求,以及关键请求的http response是什么.当发现功能异常之后,根据我们用Fiddler看到的数据,往往可以自己判断问题到底是出在前台的JS还是后台service. 关于Fiddler,详见Fiddler小结一文
有空多看看系统的日志,哪里能找到一些隐藏在页面之外的异常
当我们在页面上完成了一些功能之后,要彻底明白系统背后(数据库)到底完成了什么东西,我们提交的数据到底被存储到哪里去了
综上所述,我们做功能测试的总体思路是从 点(树叶)->面(主干,分支)->后台(根)

二.性能测试
性能测试主要要从前端和后台两个角度去理解,我们可以首先使用Fiddler去大概判断网站的性能问题是出在前台还是后台.
如果Http请求的大部分时间是花在html,css,js之类的静态资源加载上,那么基本是前台性能有问题.如果某个后台的service特别费时,那么后台必定存在性能问题

前台性能
除了用Fiddler看性能外,我们可以使用Yahoo的Firefox YSlow插件去检测前端的性能.此外,关于前端性能具体的优化策略,可以参阅<High Performance Web Sites>,其中主要涉及到http协议和浏览器缓存机制
详见Web前端优化14条原则一文
后台性能
对于大部分测试工程师来说是很难直接去优化后台性能的,但是依然能去发现一些有意义的线索
用Fiddler去查看http请求,如果某个请求特别耗时,则可能存在性能问题
后台代码设计到sql查询的时候,往往测试员也是有基础去测试那些SQL的查询时间和执行时间,如果因为数据量大而导致查询太慢的话,可以建议使用数据库的索引
后台的cache机制: 我们的项目大量的使用了后台的cache机制
总之,做性能测试绝对不是简单地直接拿Loadrunner或者Jmeter去录制一下脚本,然后运行,分析结果.这一切的前提应该是充分了解了被测试系统的前台跟后台的性能

三.用户界面测试
这点关注不多,主要如下:
字体大小颜色(主要通过修改css文件)
弹窗的风格最好保持统一
四,兼容性测试
主要考虑如下几个因素组合:
不同的操作系统
不同的浏览器
浏览器的不同版本
显示器的不同分辨率
不同的浏览设备(PC,手机,平板)
五.安全性测试
安全性测试主要知道有如下几点:
SQL注入:后台使用Preparedstatement去处理SQL

XSS攻击:这个问题非常复杂.学习中..
做为一个测试工程师,我觉得应该记住如下3点:
前台的JS验证是不可靠的
用户进行任何输入都是有可能的
Web本身似乎也是不安全的:无法解释更多....
接下去举一些实际的例子:
隐藏的按钮
当我们用Firebug看页面的HTML的时候,往往能找到一些隐藏的内容,比如某个元素的 class="gradient hide",或者类似的东西.当我们直接修改掉这些属性之后,这些隐藏的东西就会在页面上暴露出来,对系统的安全造成隐患.
另外如果有某些值也可能会存储在隐藏域中
Disabled按钮
与隐藏的按钮类似,页面上经常有些可见但是灰调的按钮,也可以尝试改变他的属性,让它变成可以触发的,或许会有所发现
不该被访问的URL
如果某个URL不该被某些人访问,一定要在权限上去控制.仅仅去掉某个链接/按钮是不够的
后台Service
如果网站后台的Service能被捕捉到,而且又没有权限控制,那将是灾难性的

Ⅱ 网络安全如何入门

零基础、转专业、跨行等等都可以总结为,零基础或者有一点基础的想转网络安全方向该如何学习。

要成为一名黑客,实战是必要的。安全技术这一块儿的核心,说白了60%都是实战,是需要实际操作。

如果你选择自学,需要一个很强大的一个坚持毅力的,还有钻研能力,大部分人是东学一块西学一块儿,不成体系化的纸上谈兵的学习。许多人选择自学,但他们不知道学什么。

再来说说,先学编程还是渗透,

很多人说他们想学编程,但是在你学了编程之后。会发现离黑客越来越远了。。。

如果你是计算机专业的,之前也学过编程、网络等等,这些对于刚入门去学渗透就已经够了,你刚开始没必要学那么深,有一定了解之后再去学习。如果是转专业、零基础的可以看我下面的链接,跟着公开课去学习。

B站有相关零基础入门网络安全的视频

快速入门

另外说一句,渗透是个立马可以见效的东西,满足了你的多巴胺,让你看到效果,你也更有动力去学。

举个栗子:你去打游戏,杀了敌人,是不是很舒服,有了反馈,满足了你的多巴胺。

编程这玩意,周期太长,太容易劝退了,说句不好听的,你学了三个月,可能又把之前学的给忘了。。。这又造成了死循环。所以想要学网安的可以先学渗透。在你体验了乐趣之后,你就可以学习编程语言了。这时,学习编程语言的效果会更好。因为你知道你能做什么,你应该写什么工具来提高你的效率!


先了解一些基本知识,协议、端口、数据库、脚本语言、服务器、中间件、操作系统等等,

接着是学习web安全,然后去靶场练习,再去注册src挖漏洞实战,

学习内网,接着学习PHP、python等、后面就学习代码审计了,

最后还可以往硬件、APP、逆向、开发去学习等等

(图片来自A1Pass)

网络安全学习实际上是个很漫长的过程,这时候你就可以先找工作,边工边学。

怎么样能先工作:

学完web安全,能够完成基本的渗透测试流程,比较容易找到工作。估计6到10k

内网学完估计10-15k

代码审计学完20-50k

红队表哥-薪资自己谈


再来说说如果你是对渗透感兴趣,想往安全方面走的,我这边给你一些学习建议。

不管想学什么,先看这个行业前景怎么样--

2017年我国网络安全人才缺口超70万,国内3000所高校仅120所开设相关专业,年培养1万-2万人,加上10
-
20家社会机构,全国每年相关人才输送量约为3万,距离70万缺口差距达95%,此外,2021年网络安全人才需求量直线增长,预计达到187万,届时,人才需求将飙升278%!

因为行业人才输送与人才缺口的比例问题,网络安全对从业者经验要求偏低,且多数对从业者学历不设限。越来越多的行业从业者上升到一定阶段便再难进步,很容易被新人取代,但网络安全与其他行业的可取代性不同,网络安全工程师将在未来几十年都处于紧缺状态,并且,对于防御黑客攻击,除了极少数人靠天分,经验才是保证网络安全的第一法则。


其次,不管是什么行业都好,引路人很重要,在你刚入门这个行业的时候,你需要向行业里最优秀的人看齐,并以他们为榜样,一步一步走上优秀。


不管是学习什么,学习方法很重要,当你去学习其他知识时候,

都可以根据我下面介绍的方法去学习:

四步学习法

一、学习

二、模仿

三、实战

四、反思

说在前头,不管是干什么,找到好的引路人很重要,一个好老师能让你少走很多弯路,然后迈开脚步往前冲就行。

第一步,找到相关资料去学习,你对这个都不了解,这是你之前没接触过的领域,不要想着一次就能听懂,当然天才除外(狗头滑稽),听完之后就会有一定的了解。

第二步,模仿,模仿什么,怎么模仿?先模仿老师的操作,刚开始可能不知道啥意思,模仿两遍就会懂一些了。

第三步,实战,怎么实战?先去我们配套的靶场上练习,确定靶场都差不多之后,再去申请成为白帽子,先去挖公益src,记住,没有授权的网站都是违法的。(师父领进门,判刑在个人)

第四部,反思,总结你所做的步骤,遇到的问题,都给记录下来,这个原理你理解了吗?还是只是还是在模仿的部分养成做笔记的习惯。

学习方式有了,接下来就是找到正确的引路人进行学习,一个好的引路人,一个完整的体系结构,能让你事半功倍。

Ⅲ 本人信息安全大一新生,想走web安全的渗透路线,需要完成什么知识储备希望前辈给点建议,谢谢。

作者:向生李
链接:https://www.hu.com/question/21914899/answer/39344435
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Web安全工程师

  • Web安全相关概念
    熟悉基本概念(SQL注入、上传、XSS、CSRF、一句话木马等)。

  • 通过关键字(SQL注入、上传、XSS、CSRF、一句话木马等)进行Google/SecWiki;

  • 阅读《精通脚本黑客》,虽然很旧也有错误,但是入门还是可以的;

  • 看一些渗透笔记/视频,了解渗透实战的整个过程,可以Google(渗透笔记、渗透过程、入侵过程等);

  • 3周

    熟悉渗透相关工具
    熟悉AWVS、sqlmap、Burp、nessus、chopper、nmap、Appscan等相关工具的使用。

  • 了解该类工具的用途和使用场景,先用软件名字Google/SecWiki;

  • 下载无后们版的这些软件进行安装;

  • 学习并进行使用,具体教材可以在SecWiki上搜索,例如:Brup的教程、sqlmap;

  • 待常用的这几个软件都学会了可以安装音速启动做一个渗透工具箱;

  • 5周

    渗透实战操作
    掌握渗透的整个阶段并能够独立渗透小型站点。

  • 网上找渗透视频看并思考其中的思路和原理,关键字(渗透、SQL注入视频、文件上传入侵、数据库备份、dedecms漏洞利用等等);

  • 自己找站点/搭建测试环境进行测试,记住请隐藏好你自己;

  • 思考渗透主要分为几个阶段,每个阶段需要做那些工作,例如这个:PTES渗透测试执行标准;

  • 研究SQL注入的种类、注入原理、手动注入技巧;

  • 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架;

  • 研究XSS形成的原理和种类,具体学习方法可以Google/SecWiki,可以参考:XSS;

  • 研究Windows/Linux提权的方法和具体使用,可以参考:提权;

  • 可以参考: 开源渗透测试脆弱系统;

  • 1周

    关注安全圈动态
    关注安全圈的最新漏洞、安全事件与技术文章。

  • 通过SecWiki浏览每日的安全技术文章/事件;

  • 通过Weibo/twitter关注安全圈的从业人员(遇到大牛的关注或者好友果断关注),天天抽时间刷一下;

  • 通过feedly/鲜果订阅国内外安全技术博客(不要仅限于国内,平时多注意积累),没有订阅源的可以看一下SecWiki的聚合栏目;

  • 养成习惯,每天主动提交安全技术文章链接到SecWiki进行积淀;

  • 多关注下最新漏洞列表,推荐几个:exploit-db、CVE中文库、Wooyun等,遇到公开的漏洞都去实践下。

  • 关注国内国际上的安全会议的议题或者录像,推荐SecWiki-Conference。

  • 3周

    熟悉Windows/Kali Linux
    学习Windows/Kali Linux基本命令、常用工具;

  • 熟悉Windows下的常用的cmd命令,例如:ipconfig,nslookup,tracert,net,tasklist,taskkill等;

  • 熟悉Linux下的常用命令,例如:ifconfig,ls,cp,mv,vi,wget,service,sudo等;

  • 熟悉Kali Linux系统下的常用工具,可以参考SecWiki,《Web Penetration Testing with Kali Linux》、《Hacking with Kali》等;

  • 熟悉metasploit工具,可以参考SecWiki、《Metasploit渗透测试指南》。

  • 3周

    服务器安全配置
    学习服务器环境配置,并能通过思考发现配置存在的安全问题。

  • Windows2003/2008环境下的IIS配置,特别注意配置安全和运行权限,可以参考:SecWiki-配置;

  • Linux环境下的LAMP的安全配置,主要考虑运行权限、跨目录、文件夹权限等,可以参考:SecWiki-配置;

  • 远程系统加固,限制用户名和口令登陆,通过iptables限制端口;

  • 配置软件Waf加强系统安全,在服务器配置mod_security等系统,参见SecWiki-ModSecurity;

  • 通过Nessus软件对配置环境进行安全检测,发现未知安全威胁。

  • 4周

    脚本编程学习
    选择脚本语言Perl/Python/PHP/Go/Java中的一种,对常用库进行编程学习。

  • 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime,一些Sublime的技巧:SecWiki-Sublime;

  • Python编程学习,学习内容包含:语法、正则、文件、网络、多线程等常用库,推荐《Python核心编程》,不要看完;

  • 用Python编写漏洞的exp,然后写一个简单的网络爬虫,可参见SecWiki-爬虫、视频;

  • PHP基本语法学习并书写一个简单的博客系统,参见《PHP与MySQL程序设计(第4版)》、视频;

  • 熟悉MVC架构,并试着学习一个PHP框架或者Python框架(可选);

  • 了解Bootstrap的布局或者CSS,可以参考:SecWiki-Bootstrap;

  • 3周

    源码审计与漏洞分析
    能独立分析脚本源码程序并发现安全问题。

  • 熟悉源码审计的动态和静态方法,并知道如何去分析程序,参见SecWiki-审计;

  • 从Wooyun上寻找开源程序的漏洞进行分析并试着自己分析;

  • 了解Web漏洞的形成原因,然后通过关键字进行查找分析,参见SecWiki-代码审计、高级PHP应用程序漏洞审核技术;

  • 研究Web漏洞形成原理和如何从源码层面避免该类漏洞,并整理成checklist。

  • 5周

    安全体系设计与开发
    能建立自己的安全体系,并能提出一些安全建议或者系统架构。

  • 开发一些实用的安全小工具并开源,体现个人实力;

  • 建立自己的安全体系,对公司安全有自己的一些认识和见解;

  • 提出或者加入大型安全系统的架构或者开发;

  • 看自己发展咯~

Ⅳ 零基础如何学习web安全能不能学会呢

Web业务的迅速发展也引起黑客们的强烈关注,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。 去慕课网学

Ⅳ 如何学习网络安全

如果你是一个完全经验的新手,想转行网络安全,我们建议

第一步:需要了解整个行业的全貌

当你想快速进入一个行业的时候,第一步不是直接开始学习,而是梳理这个行业的知识体系,或者你这个行业所需要的掌握的必备能力,然后一步一步进行拆解。

这样的好处在于,第一能够清晰的理清楚你需要真正掌握的技能点,第二能够增强执行力,因为当你拆解成各个能力模块的时候,你的执行力会提高,因为你知道你需要每天做什么。

相信很多新手想入门网络安全都知道,一般建议都是从Web安全入手,这不需要你有很多代码等专业知识,更容易找到成就感增加你的学习兴趣,因此,第一步,建议从Web安全方向入手,为了让你快速入门Web安全,可以从我们针对上百家企业的Web安全工程师岗位做的深度调研,总结出的Web安全学习路径,帮你建立Web安全整体知识体系。

web案例学习路线图

第二步:加强实战训练

我们知道,任何职场上的能力,都需要通过实操才能确认是否真正掌握,而网络安全,实操技能要求比其他岗位更强,因此,每学完一个技能,你都需要去实操练习,这里推荐的实操平台

第三步:记笔记

每个知识点的学习,要详细的记录笔记的学习中遇到的问题,解决这个问题的思路,哪里还有别的思路可以解决?后续再有类似的问题出现,我们就可以去看当初的笔记,进行巩固,常言道:好记性不如烂笔头(前辈们经过多年推敲的总是,不是没有道理的)

最重要是 要不断在学习,因为这个行业 技术更新频次很快

Ⅵ web安全学习如何提高自己

横向就是如图所示,纵向就是数据流;数据流说白了就是http协议。
举例:
1、如果在操作系统没有处理好,就产生了OS命令执行的安全问题;
2、如果在存储层的数据库中没有处理好,数据库的SQL解析引擎把这个“特殊数据”当做指令执行,就产生了SQL注入;
3、如果在web容器层如nginx中没有处理好,nginx把特殊数据当成指令执行时,就会产生远程溢出、DoS等各种安全问题;
4、如果在web开发框架或web应用层中没有处理好,把特殊数据当做指令执行时,可能就产生远程命令执行的安全问题;
5、如果在web前端层中没有处理好,浏览器的JS引擎把特殊数据当做执行执行时,就可能产生XSS跨站脚本的安全问题;

总结:
一切安全问题都体现在“输入输出”上,一切安全问题都存在“数据流”的整个过程中;

Ⅶ 新手想要学web渗透,网络安全,要如何开始

首先想想是不是真心想学,这条路注定孤独寂寞,不断碰壁。
想好后,就要每天坚持。
我的一些建议:每天多任务进行,比如早上两小时看英语学习,之后看语言,(C语言之后python之后php),下午看些网络上的渗透资料,晚上实践,等到资料看完。可以开始看看渗透博客,然后下午晚上自由分配

Ⅷ 零基础如何学习 Web 安全

1.学习网站构建初级教程_W3C以及HTTP协议基础-runoob上了解Web前后端以及HTTP协议的一些基础介绍,花半天时间对相关技术有个概念性的了解就够了。

2. Windows下下载phpStudy或者WAMP,在本地搭建Web服务器环境,然后自己搜索两篇文章学习下基本的操作方法。这个本地Web服务器也就相当于学习过程中的一个实验环境了。

3.学习浏览器的开发者工具(通常快捷键F12调出),搜索一些教学文章,掌握Chrome或者Firefox浏览器开发者工具中的Network、Elements功能的常见用法,可以查看HTTP数据包以及定位页面元素。

那学习Web安全呢,同时还要掌握一些工具:浏览器开发者工具与浏览器插件(如HackBar、ProxySwitcher)、抓包工具如Burpsuite、漏洞扫描和验证工具如御剑、sqlmap、AWVS,工具可以在Freebuf上自行搜索下载,教程可以参考Web安全-i春秋系列教程中对应这几款工具的章节学习。

好的工具可以帮助我们提高测试效率,扩展测试思路。除了工具的使用,通过搭建本地实战环境练习手工技巧,也是很好的进阶之路,这里建议可以搭建DVWA漏洞测试环境,然后参考DVWA系列教程_Freebuf进行学习。

学习的同时也可以在在教育行业SRC等漏洞平台上挖掘漏洞,赢得认可,也是一种动力,但挖掘漏洞的时候一定要注意规范和界限,可以参考自律方能自由,《网络安全法》实施后的白帽子行为参考,挖掘漏洞的同时也要注意保护自己。

Ⅸ web安全要学什么

Web安全的范围实在太大,哪些先学,哪些后学,如果没有系统的路线会降低大家效率,对于刚入门的同学们来说简直就是“噩梦”。所以,这篇类似学习路线的文章,希望可以帮助刚入门的萌新们少走弯路。(文末附学习资料及工具领取)

首先我们来看看企业对Web安全工程师的岗位招聘需求是什么?

1职位描述

  • 对公司各类系统进行安全加固;

  • 对公司网站、业务系统进行安全评估测试(黑盒、白盒测试)

  • 对公司安全事件进行响应、清理后门、根据日志分析攻击途径

  • 安全技术研究,包括安全防范技术、黑客技术等;

  • 跟踪最新漏洞信息,进行业务产品的安全检查。

  • 2岗位要求

  • 熟悉Web渗透测试方法和攻防技术,包括SQL注入、XSS跨站、CSRF伪造请求、命令执行等OWSP TOP10 安全漏洞与防御;

  • 熟悉Linux、Windows不同平台的渗透测试,对网络安全、系统安全、应用安全有深入理解和自己的认识;

  • 熟悉国内外安全工具,包括Kali、Linux、Metasploit、Nessus、Namp、AWVS、Burp等;

  • 对Web安全整体有深刻理解,有一定漏洞分析和挖掘能力;

  • 根据岗位技能需求,再来制定我们的学习路径,如下:

    一、Web安全学习路径


    01 HTTP基础

    只有搞明白Web是什么,我们才能对Web安全进行深入研究,所以你必须了解HTTP,了解了HTTP,你就会明白安全术语的“输入输出”。黑客通过输入提交“特殊数据”,特殊数据在数据流的每个层处理,如果某个层没处理好,在输出的时候,就会出现相应层的安全问题。关于HTTP,你必须要弄明白以下知识:

    HTTP/HTTPS特点、工作流程

    HTTP协议(请求篇、响应篇)

    了解HTML、Javascript

    Get/Post区别

    Cookie/Session是什么?

    02 了解如下专业术语的意思

    Webshell
    菜刀
    0day
    SQL注入
    上传漏洞
    XSS
    CSRF
    一句话木马

    ......

    03 专业黑客工具使用

    熟悉如何渗透测试安全工具,掌握这些工具能大大提高你在工作的中的效率。

    Vmware安装

    Windows/kali虚拟机安装

    Phpstudy、LAMP环境搭建漏洞靶场

    Java、Python环境安装

    子域名工具 Sublist3r

    Sqlmap
    Burpsuite
    Nmap
    W3af
    Nessus
    Appscan
    AWVS

    04 XSS

    要研究 XSS 首先了解同源策略 ,Javascript 也要好好学习一下 ,以及HTML实体 HTML实体的10 或16进制还有Javascript 的8进制和16进制编码,最终掌握以下几种类型的XSS:

    反射型 XSS:可用于钓鱼、引流、配合其他漏洞,如 CSRF 等。

    存储型 XSS:攻击范围广,流量传播大,可配合其他漏洞。

    DOM 型 XSS:配合,长度大小不受限制 。

    05 SQL注入

    所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。你需要了解以下知识:

    SQL 注入漏洞原理
    SQL 注入漏洞对于数据安全的影响
    SQL 注入漏洞的方法
    常见数据库的 SQL 查询语法
    MSSQL,MYSQL,ORACLE 数据库的注入方法
    SQL 注入漏洞的类型:数字型注入 、字符型注入、搜索注入 、盲注(sleep注入) 、Sqlmap使用、宽字节注入

    SQL 注入漏洞修复和防范方法
    一些 SQL 注入漏洞检测工具的使用方法

    06 文件上传漏洞

    了解下开源编辑器上传都有哪些漏洞,如何绕过系统检测上传一句话木马、WAF如何查杀Webshell,你必须要掌握的一些技能点:

    1.客户端检测绕过(JS 检测)

    2.服务器检测绕过(目录路径检测)

    3.黑名单检测

    4.危险解析绕过攻击

    5..htaccess 文件

    6.解析调用/漏洞绕过

    7.白名单检测

    8.解析调用/漏洞绕过

    9.服务端检测绕过-文件内容检测

    10.Apache 解析漏洞

    11.IIS 解析漏洞

    12.Nginx 解析漏洞

    07 文件包含漏洞

    去学习下
    include() include_once() require() require_once() fopen() readfile()
    这些php函数是如何产生文件包含漏洞, 本地包含与远程包含的区别,以及利用文件包含时的一些技巧如:截断 /伪url/超长字符截断等 。

    08 命令执行漏洞

    PHP代码中常见的代码执行函数有:
    eval(), assert(), preg_replace(), call_user_func(), call_user_func_array(),create_function(), array_map()等。
    了解这些函数的作用然后些搞清楚如何造成的代码执行漏洞。

    09 CSRF 跨站点请求

    为什么会造成CSRF,GET型与POST型CSRF 的区别, 如何防御使用 Token防止CSRF?

    010 逻辑漏洞

    了解以下几类逻辑漏洞原理、危害及学会利用这几类漏洞:

    信息轰炸、支付逻辑漏洞、任意密码修改、越权访问、条件竞争、任意注册、任意登录、顺序执行缺陷、URL跳转漏洞.

    011 XEE(XML外部实体注入)

    当允许XML引入外部实体时,通过构造恶意内容,可以导致文件读取、命令执行、内网探测等危害。

    012 SSRF

    了解SSRF的原理,以及SSRF的危害。
    SSRF能做什么?当我们在进行Web渗透的时候是无法访问目标的内部网络的,那么这个时候就用到了SSRF漏洞,利用外网存在SSRF的Web站点可以获取如下信息。
    1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;
    2.攻击运行在内网或本地的应用程序(比如溢出);
    3.对内网Web应用进行指纹识别,通过访问默认文件实现;
    4.攻击内外网的Web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);
    5.利用file协议读取本地文件等。

    如果上述漏洞原理掌握的都差不多那么你就算入门Web安全了。

    如果看了上面你还不知道具体如何学习?可参考合天网安实验室Web安全工程师岗位培养路径学习:网页链接

Ⅹ 学web安全前都需要掌握什么

1、基础网络协议/网站架构

互联网的本质也就是一系列的网络协议,不管是C/S架构还是B/S架构都是基于网络通信,渗透人员需要了解到通信流程以及数据包走向等,才能使用相应手段跟工具去做渗透。

Web网站常见的协议以及请求方式,这些在做渗透的时候必不可少的。甚至也是可以利用协议来做渗透测试。所有的知识都是息息相关的,必不可少。

2、基础的编程能力

一名Web渗透测试人员必须具有有一定的基础编程能力的,每天都跟代码打交道,如果不会写代码或者看不懂代码,十分吃亏。

例如需要自己写一款适合此刻情景漏洞的工具,如果不会写会极大降低效率。再者就是关于后续进阶的代码审计问题,如果不会写代码,代码也看不懂那么就不知道怎么从源代码去审计漏洞,去发现原因。

3、渗透测试工具

渗透测试工具网上开源的很多,作为渗透测试人员会使用渗透测试工具这是必不可少的。一些优秀的工具要学会利用,还有就是要学会自己写工具。例如在做渗透测试中,好比说大量的数据FUZZ,如果说人工操作将大大浪费时间跟效率。

如若网上的工具不符合此漏洞的情景,这时候就需要自己手动写工具去调试。当然网上优秀的工具已不少,优先使用会极大提高我们的效率。

4、了解网站的搭建构成

试着去了解一个网站的形成架构,语言,中间件容器等。如果不知道一个网站是如何搭建起来的,那么做渗透的时候根本就没有对应的渗透测试方案。例如一个网站采用了某种中间件,或者什么数据库,再或者是采用网上开源的CMS。

如果对于这些不了解,那么就只能在网页上徘徊游走,甚至无从下手。了解一个网站的搭建与构成,对于前期做踩点与信息收集有着很大的帮助。

5、漏洞原理(重要)

渗透测试人员肯定是要对漏洞原理去深入研究探究,这样会从中发现更多有“趣”的东西。所有有“趣”的东西是可能你在原有的基础漏洞上配合其他漏洞,从而达到组合漏洞,这样效果有可能会更佳,不过不去了解漏洞原理,漏洞产生,不去从代码层出发。

那就不知道漏洞起因,到后期的渗透利用以及修复方案,就会显得吃力,这时候有可能你就需要去查资料,从某种形式的降低了速度与效率,所以,知识与积累必不可少。

6、报告撰写能力

每次做完渗透测试之后,都是需要一个渗透测试报告,对于漏洞挖掘的梳理,网络结构印象加深,这是后期与客户沟通还有与开发对接提修复建议能起到很大的帮助,这些细小的细节决定着你服务的质量与责任感,因此需要不断的积累与提升。