Ⅰ 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职位描述
对公司各类系统进行安全加固;
对公司网站、业务系统进行安全评估测试(黑盒、白盒测试)
对公司安全事件进行响应、清理后门、根据日志分析攻击途径
安全技术研究,包括安全防范技术、黑客技术等;
跟踪最新漏洞信息,进行业务产品的安全检查。
熟悉Web渗透测试方法和攻防技术,包括SQL注入、XSS跨站、CSRF伪造请求、命令执行等OWSP TOP10 安全漏洞与防御;
熟悉Linux、Windows不同平台的渗透测试,对网络安全、系统安全、应用安全有深入理解和自己的认识;
熟悉国内外安全工具,包括Kali、Linux、Metasploit、Nessus、Namp、AWVS、Burp等;
对Web安全整体有深刻理解,有一定漏洞分析和挖掘能力;
2岗位要求
根据岗位技能需求,再来制定我们的学习路径,如下:
一、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、报告撰写能力
每次做完渗透测试之后,都是需要一个渗透测试报告,对于漏洞挖掘的梳理,网络结构印象加深,这是后期与客户沟通还有与开发对接提修复建议能起到很大的帮助,这些细小的细节决定着你服务的质量与责任感,因此需要不断的积累与提升。