要分享这篇Writeup是作者在一次私人赏金项目上发现的,目标网站存在不安全的访问控制措施,可以利用其导致路径遍历(Path Traversal) +任意文件上传,以本地文件包含(LFI)方式,实现远程代码执行(RCE)。此处渗透测试测试是一次非常经典的的LFI+任意文件上传操作。考虑到站点隐私的问题,部分图片会做打码处理。
目标站点上有一个名为/se/v92711/generic/gn_deaultframe/2.0/defaultframe_toolbar_load.php的页面,在POST body中,作者发现了一个有趣的参数:frameManagerPath,内容经过base64-encode处理。这个参数用于加载目标站点上的JS文件。如下图:
解码base64,发现这是一个相对路径:
接下来尝试读取/etc/passwd
的内容,需要先进行编码:L2V0Yy9wYXNzd2Q=
:
在此之前,作者找到了一个文件上传点,可以上传任意格式文件,并且上传文件的存放路径可以在响应中看到。如下:
但问题来了,外部用户无法访问/wwwroot/path:/.
。因此,这个漏洞暂时有些鸡肋。
首先,上传一个普通的webshell,反回文件存放的相对路径。
对路径做调整,base64-encode处理得到cmFudC9ibG9nL3BhdGh0cmF2ZXJzYWwvaW1hZ2UwNS5wbmc=
,然后结合LFI,尝试执行。
请求:
响应:
最终,作者实现了远程代码执行:
参考来源:incogbyte