##ps:本文章仅用来分享,请勿将文章内的相关技术用于非法目的,请勿将文章内的相关技术用于非法目的,请勿将文章内的相关技术用于非法目的!!如有非法行为与本文章作者无任何关系。一切行为以遵守《中华人民共和国网络安全法》为前提。######
🌟🌟今天hw貌似爆了挺多劲爆的0day,大佬果然多啊
昨天看到群里有人说扣扣爆了0day,看了一下复现没什么技术难点,还是七夕,就想给朋友一个小礼物(虽然非常土。。。。。。。)。
原理
qq windows客户端的“文件传输消息”在经过“回复消息”功能处理后,该文件会变为无需用户点击“下载”或“运行”等确认按钮,点击消息文本后即可自动下载并执行。大大降低了黑客的钓鱼难度🎣。
(目前qq官方以紧急修复该漏洞,升级qq版本即可)
影响版本
QQ Windows版9.7.13及以前版本
复现过程
1、搞一个可执行脚本文件,随便什么.bat、.vbs、.html都行
(我搞了个七夕的小玩意儿,非恶意的,test还打错了,打成了text,卒///)
2、把文件先发给自己(可以随便跟一个人建一个群,然后把那人踢出去,就成了自己一个群,就可以发消息给自己啦~)
3、然后右键,回复这个消息,随便回复什么都可以。
4、然后就可以把这条带有可执行文件的消息转发给朋友们啦。
5、本来想跟朋友试,结果我的朋友不想打开电脑💻。。。。。。。卒
我就自己玩了,效果是这样的:
(烟花还能跟着鼠标动,鼠标点哪里,烟花就放哪里。。。。。好吧是有点土。。。)
6、 正常情况下,qq中的文件想要下载,需要我们主动点击“打开”按钮,和“确认下载”按钮,再主动双击这个文件,它才会完成执行。比如这样:
但这个漏洞,只需要点击消息它就会自动下载、自动执行。
后记——烟花脚本代码
<!DOCTYPE html>
//心心部分代码
<html>
<head>
<meta charset="utf-8">
<title>loveHeart</title>
<link rel="shortcut icon" href="http://zhouql.vip/images/心.png" type="image/x-icon">
<style>
html,
body {
height: 100%;
padding: 0;
margin: 0;
background: #000;
}
canvas {
position: absolute;
width: 100%;
height: 100%;
}
p{
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
color: pink;
animation: k 1.5s ease-in-out infinite;
}
@keyframes k{
100%{
font-size: 24px;
opacity: 0;
}
}
</style>
</head>
<body>
<p style="font-size:35px; ">七夕快乐~yeah</p>
h1 {
font-family: Verdana, Geneva, Tahoma, sans-serif;
}
<canvas id="pinkboard"></canvas>
<script>
var settings = {
particles: {
length: 700, // 爱心的大小
duration: 2, // 爱心扩散速度,越小速度越快
velocity: 100, // 爱心扩散速度,越小速度越慢
effect: -0.25, // 爱心收缩效果,比如:1扩散,-2收缩
size: 56, // 爱心数量
},
};
(function () { var b = 0; var c = ["ms", "moz", "webkit", "o"]; for (var a = 0; a < c.length && !window.requestAnimationFrame; ++a) { window.requestAnimationFrame = window[c[a] + "RequestAnimationFrame"]; window.cancelAnimationFrame = window[c[a] + "CancelAnimationFrame"] || window[c[a] + "CancelRequestAnimationFrame"] } if (!window.requestAnimationFrame) { window.requestAnimationFrame = function (h, e) { var d = new Date().getTime(); var f = Math.max(0, 16 - (d - b)); var g = window.setTimeout(function () { h(d + f) }, f); b = d + f; return g } } if (!window.cancelAnimationFrame) { window.cancelAnimationFrame = function (d) { clearTimeout(d) } } }());
var Point = (funct