目录
(一)敏感信息泄露
状态码: 200 表示正常 301 302 表示跳转 404 表示文件不存在 500 表示服务器内部错误 502 表示转发失败
1.版本控制系统泄露
版本控制系统是一种软件工具,用于帮助软件开发团队管理源代码的变更历史。它们能够跟踪代码的每一次修改,并允许多个用户协作编辑。常见的版本控制系统包括Git、Subversion(SVN)、Mercurial和Concurrent Versions System(CVS)等。在这些系统中,Git是目前最流行的版本控制系统,它由Linus Torvalds创造,用于管理Linux内核的开发。Git的设计哲学是提供高速操作、数据完整性和支持分布式非线性工作流
访问.git或者.svn目录出现403
(1)Git泄露
git常用命令
git reflog 查看历史命令 git log 查看提交历史记录 git reset 切换版本 git diff 对比两次提交 git reflog 查看历史命令 git stash 保存所有未提交的修改 git stash list 查看当前存储在栈中的内容 git stash pop 弹出当前存储在栈中的内容 git status 查看当前仓库的状态
练习1:基础
ctfshow-版本控制泄露源码
首先进行目录扫描
dirsearch -u "https://c68da623-4aa0-4a0a-90a4-f092261205a8.challenge.ctf.show/"
扫到.git目录,拼接url
练习2:Log
ctfhub-Log
目录扫描
扫出/.git目录,拼接url不行
使用GitHack工具
python2 GitHack.py http://challenge-72de8e6befd6a48d.sandbox.ctfhub.com:10800/.git/
切换到得到的目录下 cd /home/kali/Desktop/GitHack/dist/challenge-72de8e6befd6a48d.sandbox.ctfhub.com_10800 显示各种 Git 对象(如提交、标签、树对象等)的详细信息 git show
练习3:Stash
ctfhub-Stash
跟上面一样
python2 GitHack.py http://challenge-7d35656c6cd0d69e.sandbox.ctfhub.com:10800/.git/
cd /home/kali/Desktop/GitHack/dist/challenge-7d35656c6cd0d69e.sandbox.ctfhub.com_10800 用git show 或者 git stash list 查看当前存储在栈中的内容 git stash pop 弹出当前存储在栈中的内容
最后查看文件
练习4:Index
ctfhub-Index
(2)SVN泄露
练习1:基础
ctfshow-版本控制泄露源码2
首先进行目录扫描
扫到.svn目录,拼接url
练习2:用dvcs-ripper
ctfhub-svn泄露
目录扫描
当用/.svn/wc.db拼接url时,得到一个文件
再次拼接这个txt访问url,not found发现可能被删除了
题目又提示在旧版的源代码中,所以检查一下 pristine 文件是否存放 flag ,使用dvcs-ripper工具将泄露的文件下载到本地目录中
./rip-svn.pl -v -u http://challenge-7f953995e235f4e3.sandbox.ctfhub.com:10800/.svn/
tree .svn
(3)CVS泄露
(4)HG泄露
当开发人员使用 Mercurial 进行版本控制,对站点自动部署。如果配置不当,可能会将.hg 文件夹直接部署到线上环境。这就引起了 hg 泄露漏洞。
练习1:用dvcs-ripper
ctfhub-HG泄露
目录扫描
这还是跟SVN泄露一样的操作
./rip-hg.pl -v -u http://challenge-63487c8661d9cec8.sandbox.ctfhub.com:10800/.hg/
cd .hg 查找flag相关字符 grep -r flag *
拼接url
2.配置文件泄露
3.web爬虫协议
一般首先需要dirsearch扫描网站目录
dirsearch -u "url"
练习1:
题目:攻防世界-robots
解答
练习2:
题目:攻防世界-Training-WWW-Robots
解答
4.协议头信息泄露
练习1:
ctfshow-协议头信息泄露
打开开发者工具查看数据包信息或者抓包send,得到flag
练习2:cookie泄露
ctfshow-cookie泄露
可以点击检查-网络查看cookie,也可以抓包
5.域名txt记录泄露
域名解析
网站在线域名解析记录检测-在线Nslookup域名解析查询工具
kali: dnsenum --enum [] dig [] host -t []
6.管理员密码、邮箱等网站公开信息泄露
有时候网站上的公开信息,就是管理员常用密码
练习1:
ctfshow-敏感信息公布
进行目录扫描或者根据题目提示(管理员一般是admin等)
拼接url访问admin目录,发现需要密码
查找密码发现在网站下方有一串数字
输入账号admin,密码372619038
练习2:
ctfshow-密码逻辑脆弱
根据提示找到到邮箱
尝试登陆后台
忘记密码需要知道所在的地区,查下QQ号
成功忘记密码,得到重置密码
7.内部技术文档泄露
技术文档里面不要出现敏感信息,部署到生产环境后及时修改默认密码
练习1:
ctfshow-内部技术文档泄露
8.编辑器配置不当
有时候源码里面就能不经意间泄露重要(editor)的信息,默认配置害死人
练习1:
ctfshow-编辑器配置不当
检查页面源代码或者dirsearch目录遍历,发现editor目录
拼接url访问该目录,出现编辑器
点击上传文件按钮,看到目录里的所有文件
找到flag拼接url
9.探针泄露
对于测试用的探针,使用完毕后要及时删除,可能会造成信息泄露
练习1:
ctfshow-探针泄露
进行目录遍历
得到一个目录/tz.php
拼接url得到探针页面
有个phpinfo,搜索flag
(二)源码泄露
1.F12查看源码
2.F12查看不了源码(前台JS绕过)
①F12
②要仅查看源代码,请按计算机键盘上的 Ctrl
+U
。
③右键单击网页的空白部分,然后从出现的弹出菜单中选择“查看页面源代码(V)”。
3.disabled_button隐藏按钮
step1:打开开发者工具,在查看器窗口审查元素,发现存在disabled=""字段, step2:将disabled=""删除后,按钮可按,按下后得到flag
4.php、phps源码泄露
练习1:
ctfshow-phps源码泄露
使用diresearch对php类型的文件进行扫描(php,phps),发现目录文件index.phps
dirsearch -u "https://254f4c17-b2c4-41c9-987a-5e67bd1fc61d.challenge.ctf.show/" -e php,phps
打开后得到flag
5.phpinfo泄露
练习1:
ctfhub-PHPINFO
ctrl F查找flag
6.备份文件源码泄露
(1)源码压缩包泄露
练习1:
ctfshow-源码压缩包泄露
dirsearch -u "https://6bec73f6-e1a7-47e5-9955-bea4178ea9ec.challenge.ctf.show/" -e zip,rar,gzip
练习2:
ctfhub-网站源码
进行目录扫描,发现www.zip文件
拼接url得到
拼接flag_181352645.txt
得到flag
(2)bak文件
练习1:
ctfhub-bak文件
提示flag在index.php源码里,拼接index.php没反应,查看提示bak文件备份,拼接index.php.bak得到文件
(3)vim缓存
当开发人员在线上环境中使用 vim 编辑器,在使用过程中会留下 vim 编辑器缓存,当vim异常退出时,缓存会一直留在服务器上,引起网站源码泄露。在编辑时会创建临时缓存文件,关闭vim时缓存文件则会被删除,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容.
Vim的临时文件主要是swap文件(.swp文件),用于在编辑过程中保存未保存的编辑内容,以防止数据丢失。当你在Vim中打开一个文件进行编辑时,Vim会自动生成一个以.swp为后缀的临时文件,这个文件通常位于与原始文件相同的目录下,并以.开头。
例如,如果你正在编辑一个名为docker-compose.yml的文件,Vim会创建一个名为.docker-compose.yml.swp的临时交换文件。
练习1:
ctfshow-vim临时文件泄露
还是首先进行目录扫描
dirsearch -u "https://4cda6637-9d0b-4c3e-8bd3-bc24260eb382.challenge.ctf.show/" -e php.swp,html.swp
拼接url
练习2:
ctfhub-vim缓存
提示flag在源码中,又是vim缓存文件,拼接index.php.swp,在创建vim时回产生缓存文件,退出时就会删除,若异常退出,会产生.swp,.swo,.swn等缓存文件
以 index.php 为例: 第一次产生的交换文件名为 .index.php.swp
当index.php.swp意外退出时,将会产生名为 .index.php.swo 的交换文件
第三次意外退出时产生的交换文件则为 .index.php.swn
所以这关考的是我们对vim缓存文件名称的认识
我们访问index.php.swp文件
发现没有这个url
我们在index前面加个点(访问隐藏文件的方法) 得到文件后我们用记事本打开
(4).DS_Store
.DS_Store是Mac OS保存文件夹的自定义属性的隐藏文件,如文件的图标位置或背景色,相当于Windows的desktop.ini。
练习1:
url上拼接.DS_Store
打开是乱码
使用linux系统打开
拼接这个txt文件
7.数据库文件
练习1:
ctfshow-数据库恶意下载
asp+access架构的数据库文件为db.mdb文件
目录扫描
再在此基础上扫描
8.js敏感信息泄露
还是检查页面源代码,看源代码里的信息
练习1:
ctfshow-js敏感信息泄露
得到一串unicode编码的:\u4f60\u8d62\u4e86\uff0c\u53bb\u5e7a\u5e7a\u96f6\u70b9\u76ae\u7231\u5403\u76ae\u770b\u770b
用110.php拼接url
练习2:前端密钥泄露
ctfshow-前端密钥泄露
抓包
(三)伪造请求头
XFF(X-Forwarded-For) 和 Referer 是在 HTTP 请求头中使用的两个常见字段,它们在网络请求中有不同的作用。
1.XFF(X-Forwarded-For):
定义: X-Forwarded-For 是一个 HTTP 请求头字段,通常由代理服务器使用。它用于标识最初发起请求的客户端 IP 地址,即用户的真实 IP 地址。
作用: 当客户端通过多个代理服务器发出请求时,XFF 头字段可以跟踪请求通过的每个代理服务器,并保留原始客户端 IP 地址。这在负载均衡、日志记录和安全审计中非常有用,因为服务器可以看到实际的请求来源。
格式: X-Forwarded-For: <client1>, <proxy1>, <proxy2>, ...
其中,<client1> 是最原始的客户端 IP 地址,接下来的 IP 地址是请求经过的代理服务器。
2.Referer:
定义: Referer(有时也拼写为 “Referrer”)是一个 HTTP 请求头字段,它包含了当前请求页面的来源地址,即用户是从哪个页面点击过来的。
作用: 服务器可以通过 Referer 头字段了解用户的来路,通常用于分析流量来源、广告点击跟踪、访问权限控制等。比如,某网站只允许来自特定页面的访问,则会检查 Referer 头。
格式: Referer: <previous_page_url>
其中,<previous_page_url> 是用户之前访问的页面的完整 URL。
简单总结:
XFF 用于追踪客户端的真实 IP 地址,特别是在请求经过多个代理服务器时。
Referer 用于标识当前请求页面的来源页面,帮助服务器理解用户的访问路径。
这两个头字段在网络安全和流量分析中都非常重要。