freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

这都学不好Web安全 你真的太让我失望了
2019-03-25 10:00:19
所属地 湖南省

原创: 月亮警察针灸你 合天智汇

Web安全浅析

在探讨Web安全学习之前,首先了解一下什么是Web

image.png

看到这里,你可能会问:这么多内容都需要学习吗?

答案是:可以不用学得很深入,但是如果不了解这些研究对象,是不可能搞好的安全研究的。(原话来自余弦大佬在知乎的回答)

那么这么多内容应该从哪里开始学呢?别急,等了解完什么是Web安全再学也不迟。

把Web服务各层串联起来的就是数据流,掌握了数据流就能知道数据在每层是如何处理的。而在数据流中有一个关键的协议,就是HTTP协议,搞明白HTTP协议后,你就会明白一个专业术语“输入输出”。黑客通过输入提交‘特殊数据’,‘特殊数据’在数据流的每个层处理,如果其中某一层没处理好,在输出的时候,就会出现相应层的安全问题,也就是本文的重点——Web安全

例如:

  1. 操作系统:数据如果在操作系统层上没处理好,可能会产生命令执行等安全问题;

  2. 存储:数据如果在存储层上没处理好,可能会产生SQL注入等安全问题;

  3. Web容器:数据如果在Web容器层中没处理好,可能会产生远程溢出DoS等安全问题;

  4. Web服务端语言:代码审计对于安全人员来说也是一项重要技能;

  5. Web开发框架/Web应用:数据如果在这里没处理好,可能会产生命令执行等安全问题;

  6. Web前端框架:数据如果在Web前端框架中没处理好,可能会产生XSS跨站脚本等安全问题;

到这里可以看出“输入输出”对于安全的重要性了吧。

接下来的内容都是干货

初步了解了什么是Web以及容易产生的一些安全问题,下面具体来说说入门Web安全应该学什么,怎么学。

image.png还是从Web服务说起,操作系统层具体分为Windows和Linux,Windows又有Win10、Win8、Win7、WindowsServer 2016、WindowsServer 2012、WindowsServer 2008、WindowsServer 2003等版本,主要了解它们的安全配置及相关漏洞。

1、Windows系统安全配置:

http://www.hetianlab.com/cour.do?w=1&c=C9d6c0ca797abec2017041916560700001

通过学习Windows系统安全配置课程,基本了解Windows操作系统的安全加固方

1、Windows系统加固:

http://www.hetianlab.com/expc.doec=ECID172.19.104.182015070809494300001

这也是和Windows系统安全加固相关的实验。

还有很多Windows相关的比如文件系统备份、用户管理、日志清理、用户口令破解等知识,都可以在

http://www.hetianlab.com/pages/search.html?wk=Windows

进行学习。

而Linux又有CentOS、Redhat、Ubuntu、Debian、Fedora、openSUSE等诸多发行版本,说到Linux,不得不提那本被推荐了无数遍的——《鸟哥的Linux私房菜》

http://cn.linux.vbird.org/

纯文字的阅读难免让人感觉枯燥,作者更喜欢一边学习一边动手操作:

Linux入门最佳实践:

http://www.hetianlab.com/cour.do?w=1&c=CCID7ca1-dae5-48f4-8dd6-d8b6c2b5938b

课程包括Linux的发展、文件管理基础命令、管道命令、账户及系统管理等

image.png存储层主要分为数据库存储、内存存储和文件存储,其中数据库有MySQL、Oracle、MSSQL、access、MongoDB、Redis等,数据库是SQL注入学习的基础。

1、MySQL数据库相关基础学习:

http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182015082709474200001

了解MySQL表的结构与内容,增加用户及授权,删除用户等操作。

2、MongoDB安全配置:

http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182016030216511800001

实验介绍了MongoDB数据库及其安全攻防实践,通过学习此实验了解MongoDB的基本操作和安全特性。

3、Redis数据库安全实践:

http://www.hetianlab.com/cour.do?w=1&c=C172.19.104.182015052010331700001

image.png

4、系统性的SQL、MySQL学习也可以到w3cschool上进行。

Web容器包括Apache、IIS和Nginx,这里推荐几个集合环境软件:

1.php集合环境软件phpStudy:

http://www.phpstudy.net/phpstudy/phpStudy20161103.zip

2、jsp集合环境软件jspStudy:

http://www.phpstudy.net/phpstudy/JspStudy.zip

3、ASP集合环境软件小旋风ASP服务器:

http://www.jb51.net/softs/35167.html

第一个phpStudy集合了Apache、MySQL和PHP,将Web源码放到phpStudy里就搭建好了自己的Web服务器。具体教程自行百度,这里就不放链接了。

Web服务端语言:前面提到了代码审计,入门Web安全其实不需要对语言进行系统性的学习,这样很浪费时间,只要平时在分析漏洞原理、查看目标网站源代码等时候,对重要的函数、方法等有所了解,能够举一反三即可。

1、PHP基础

http://www.hetianlab.com/cour.do?w=1&c=C9d6c0ca797abec2017041916344500001

通过基础实验了解PHP语言,为后续的学习打下基础。

image.png2、PHP代码审计:

http://www.hetianlab.com/cour.do?w=1&c=C9d6c0ca797abec2017041916230700001

通过此实验学习PHP代码审计的基础知识及PHP常见危险函数

image.pngWeb框架/应用:开发框架包括Struts2、React、Django、thinkPHP等,前端框架包括jQuery、Bootstrap、HTML5、semanticUI、Pure等,Web应用包括BBS,blog,discuz、metinfo、Joomla等各种CMS,不需要大家用这些框架搭建Web应用,只需要了解各框架/CMS存在哪些漏洞,其原理、利用以及如何进行修复等。

横向的学习路径介绍完,开始纵向学习数据流之《HTTP从入门到放弃》。

协议这个东西光靠看书学习很费劲,有什么快速掌握的途径吗?

还真的有,通过学习一些入门的HTTP协议,然后浏览器F12看看‘Network’标签里的HTTP请求响应,结合wireshark等协议分析软件,不出几个小时,就大概能知道HTTP协议是什么了。

1.HTTP协议基础:

http://www.hetianlab.com/expc.do?ce=08398307-4303-4dde-bcfc-e8bd67f2e772

image.png2.wireshark数据抓包分析之HTTP协议:

http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182015121711544400001

掌握wireshark的基本操作,加深对HTTP协议的理解。

image.png3、通过wireshark分析其他协议:

http://www.hetianlab.com/cour.do?w=1&c=C172.19.104.182015012915332000001

image.png梳理完Web服务的学习,下面正式开始入门Web安全,掌握了下面这些,就算Web安全入门了。

一、命令执行

1.命令执行漏洞:

http://www.hetianlab.com/expc.do?ec=ECID9d6c0ca797abec2017050511014000001

通过实验了解命令执行漏洞产生的原因,学习漏洞的利用和修复。

2.ImageMagick命令执行漏洞:

http://www.hetianlab.com/expc.do?ec=ECID9d6c0ca797abec2016072212485000001

由于大量的Web程序都使用了ImageMagic的拓展,导致本地命令执行漏洞在Web环境里可以被远程触发,危害巨大。

image.png3.Memcached远程命令执行漏洞:

http://www.hetianlab.com/expc.do?ec=ECID9d6c0ca797abec2016111016360600001

4.通过实验学习memcached远程命令执行漏洞的利用及修复方法。

image.png5.还有很多命令执行漏洞的学习实例:

http://www.hetianlab.com/pages/search.html?wk=%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C

二、SQL注入

包括布尔盲注、时间盲注、报错注入、联合查询注入、宽字节注入、二次注入等。

1.渗透SQL注入:

http://www.hetianlab.com/cour.do?w=1&c=C9d6c0ca797abec2017041916131700001

在入门之前先了解SQL注入的原理:

image.png2、SQL注入初级:

http://www.hetianlab.com/cour.do?w=1&c=C172.19.104.182014081415242400001

九个实验带你入门SQL注入:

image.png3.[公开课]有一种注入叫SQL注入:

http://www.hetianlab.com/expc.do?ce=f18c2a12-c43d-4469-871f-6cb1cbf5a821

从SQL语句基础到SQL注入漏洞形成原理和实战利用,让你认识什么是SQL注入。

image.png

三、文件上传

包括客户端绕过js检查进行上传及服务端绕过后缀及内容检查进行上传,服务端绕过又包括特殊后缀欺骗上传、配合解析漏洞上传、截断上传等。

1.文件上传漏洞:

http://www.hetianlab.com/expc.do?ec=ECID9d6c0ca797abec2017042513351500001

学习文件上传漏洞产生的原因,以及如何利用和修复。

2.[公开课]玩转文件上传漏洞:

http://www.hetianlab.com/expc.do?ce=5a965bc3-29d8-4658-a203-be1a144219ff

通过此公开课学习文件上传漏洞产生的原因,以及文件上传绕过的各种姿势。

image.png3.kindEditor文件上传漏洞分析和利用:

http://www.hetianlab.com/expc.do?ce=85d2566f-1161-47fa-b23c-0a5ac5649f07

kindEditor编辑器组件最近爆出的文件上传漏洞,通过实验还原入侵过程,了解漏洞原理和防护方法。

image.png

四、文件包含

包括本地文件包含和远程文件包含。

1.文件包含漏洞:

http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182015060917272000001

2.简单的文件包含:

http://www.hetianlab.com/expc.do?ec=ECID9d6c0ca797abec2016092313330800001

image.png

五、溢出、Dos

  1. 缓冲区溢出基础与实践:

    http://www.hetianlab.com/expc.do?ec=9613f998-8cd2-4981-9bc5-9900c97371de

    通过实验了解缓冲区溢出的原理与危害,掌握缓冲区溢出的基本方法,学会进行常见的缓冲区溢出攻击。

  2. 缓冲区溢出漏洞调试与分析:

    http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182014040109201500001

    利用缓冲区溢出攻击,可以导致程序运行失败、系统宕机、重启等后果。

image.png

3.实战挖掘某ftp服务器溢出漏洞:

http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182015091110221500001

了解ftp服务漏洞的表现形式及利用方法。

image.png

六、跨站脚本攻击(XSS)

包括反射型XSS、存储型XSS及DOM型XSS。在学习XSS前,应该熟悉HTML/CSS及JavaScript,否则很难研究好XSS。

1.HTML基础:

http://www.hetianlab.com/expc.do?ec=ECID9d6c0ca797abec2017041911340800001

了解HTML的基本结构和标签。

image.png2.JavaScript基础:

http://www.hetianlab.com/expc.do?ec=ECID9d6c0ca797abec2017041815391500001

了解什么是JavaScript,了解DOM操作和BOM操作。

3.渗透XSS:

http://www.hetianlab.com/cour.do?w=1&c=C9d6c0ca797abec2017041916134500001

学习XSS漏洞原理,以及如何利用XSS漏洞对目标系统进行渗透测试。

image.png

七、跨站请求伪造(CSRF)

分为GET型和POST型。

渗透CSRF:

http://www.hetianlab.com/cour.do?w=1&c=C9d6c0ca797abec2017041916141200001

image.png

八、XML外部实体注入攻击(XXE)

在学习XXE前,应该熟悉XML语言,否则很难研究好XXE。

XXE漏洞攻击与防御:

http://www.hetianlab.com/cour.do?w=1&c=CCIDc75d-d37a-42d4-878b-6f130c004ad2

包括对XXE漏洞的分析与相关组件XXE漏洞学习:

image.png九、解析漏洞

1.Apache解析漏洞:

http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182015120111342100001

了解解析漏洞原理,常用的攻击方法以及有效的防御手段。

image.png2.Nginx解析漏洞:

http://www.hetianlab.com/expc.do?ec=ECID218.76.35.762014021910351300001

image.png3.IIS解析漏洞在fckEditor上传攻击中的利用:

http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182015102217243800001

通过实验学习IIS6.0中的解析漏洞,掌握IIS6.0解析漏洞在fckEditor上传攻击中的利用方法。

十、身份认证与访问控制

1.统一身份认证:

http://www.hetianlab.com/expc.do?ec=ECIDb263-0747-4118-9d51-c33f31691cb7

判断一个用户是否为合法用户的处理过程。

image.png2.非授权访问:

http://www.hetianlab.com/expc.do?ec=ECIDa2d4-e095-420a-9709-21e18a531479

包括非法用户进入网络或系统进行违法操作,合法用户以未授权的方式进行操作。

3.Jenkins未授权访问漏洞利用实践:

http://www.hetianlab.com/expc.do?ec=ECID1f27-2b6e-46ad-bb02-764d42cc5f74

image.png

十一、反序列化

包括PHP反序列化、Java反序列化、Python反序列化等。

1.PHP反序列化漏洞:

http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182016010714511600001

了解什么是反序列化漏洞,其成因以及如何挖掘和预防反序列化漏洞。

image.png2.Java反序列化漏洞:

http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182015111916202700001

以ApacheCommons Collections3为例,分析和复现Java反序列化漏洞。

image.png3.Python反序列化漏洞:

http://www.hetianlab.com/expc.do?ec=ECID7eab-0fb2-4f21-96df-5c1f912e5572

了解Python反序列化漏洞产生的机理,增强安全意识。

image.png

十二、Web框架/应用安全

前面提到了Struts2、React、Django、thinkPHP等开发框架,jQuery、Bootstrap、HTML5、semanticUI、Pure等前端框架,以及discuz、metinfo、Joomla等各种CMS。

1.Struts2框架安全:

http://www.hetianlab.com/expc.do?ec=ECID218.76.35.762014021913330900001

image.png

2.Struts2(s2-045)远程命令执行漏洞分析与复现:

http://www.hetianlab.com/expc.do?ec=ECID9d6c0ca797abec2017031012041000001

image.png

3.ThinkPHP5远程代码执行漏洞:

http://www.hetianlab.com/expc.do?ce=06d28a64-2021-4cbb-a3f9-65a27bfd7ce2

image.png

4.Joomla未授权创建账号/权限提升漏洞:

http://www.hetianlab.com/expc.do?ce=da5480f4-87af-412a-90f6-72b1c2cbd920

image.png

5.Joomla反序列化远程代码执行漏洞:

http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182016012817294800001

6.BEEF框架攻击:

http://www.hetianlab.com/cour.do?w=1&c=C9d6c0ca797abec2016091409272000001以WordPress

博客系统为基础,典型的XSS漏洞为案例,详细学习beef平台下各个模块的常用命令和攻击方法。

image.png看到这里有没有一种怀疑人生的感觉?

image.png

不用怀疑,入门Web安全没有你们想象的那么难,弄懂上面说的这些,你还会觉得你是一个什么都不懂的小白吗?

可能大家会问,入门Web安全之后应该如何提升个人技能呢?

如果有已经入门了的朋友,或者说对Web安全有了一定的了解,想掌握更多的Web安全技能,麻烦大家在留言处吱一声,作者会根据留言情况考虑是否出一个Web安全进阶学习路线。

也麻烦还没有入门的朋友,先按照文章提到的内容一步步来。

  本文为合天原创,未经允许,严禁转载。

# 合天智汇
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者