所需知识
HTTP抓包/修改:Http请求、响应流程
web前端:Cookie、缓存、跨域问题、编码(url编码、html实体编码、js编码)
web后端:php → 官方文档;Python → 廖雪峰Python教程
数据库与服务器
常见的web漏洞:XSS、SQL注入、CSRF、SSRF、命令执行、XXE、文件上传/包含/写入、反序列化、未授权访问、目录遍历、业务逻辑漏洞
工具:Sqlmap、Burpsuit、Hackbar、Proxy SwitchyOme、Postman…
Http请求
Http请求响应
- 请求包格式 → 请求头格式:请求方法 + url/path + 协议版本
- GET请求 → 从指定的资源请求数据 → 可以被缓存,有长度限制
- POST请求 → 向指定的资源提交要被处理的数据 → 不会被缓存,没有长度限制
- 响应包 → 响应头:响应协议+状态码;响应主体:html代码
- PHP后端获取请求头:
$_SERVER['HTPP_USER_AGENT']
- 常见请求头说明:
- Content-Length:请求长度,为了告诉服务器有多长(有时没有,使用一些分隔符指明长度)
题目类型
入门题目
- 查看源码(
view-source://www.baidu.com
) - 查看请求响应包(chrome开发者工具栏)
- 文件泄露
- 备份文件泄露:.index.php.swp、.index.php.swo、.index.php.bak、.index.php~
- 源码压缩包:
- git/svn泄露:利用工具GitHack、dvcs-ripper,可以获取网站源码
- 其他文件泄露:.idea(使用intellij idea工程),.DS_Store(OS X下,可泄露文件),.pyc文件
- JSfuck:利用js的弱类型特性,拼接字符串作为js代码运行 → 直接贴到chrome的开发者工具中即可运行
- 请求修改、重放:请求头、请求包、Cookie
- 查看源码(
常规题目
一个存在漏洞的网站
SQL注入:拿到数据库中的flag
命令执行、文件上传:拿到服务器上的flag
拿到管理员的cookie → flag在cookie中(XSS)
XXE简介(https://thief.one/2017/06/20/1/,https://www.leavesongs.com/PENETRATION/slim3-xxe.html),xml外部实体注入 → SSRF
其他一些漏洞利用(条件竞争、SSRF、XXE)
XXE简介