VBS代码练手

作者:znn

原文地址:https://secvul.com/topics/795.html


某日一妹子想要下载全民K歌上录制的歌曲,如下载某分享链接 https://kg.qq.com/node/play?s=Le-febL9Yb99xxxx 的歌曲,于是有了下面的折腾.

1、分析

其实在线音乐、视频利用浏览器缓存基本都能实现,如下查看IE缓存路径:
《VBS代码练手》
呃,好吧这个缓存找不到,抓下包试试:
《VBS代码练手》
嗯,看到了mp4类型,就是你了,查看源码,找到音乐链接,如下:
《VBS代码练手》现在只要简单正则匹配下类型就能获取链接下载歌曲了。

2、实现

通过分析获取这个歌曲真实链接很容易,python 五行代码实现:
import requests,re
url = raw_input("input share link:\n") #url = "https://kg.qq.com/node/play?s=Le-febL9Yb99****"
str = requests.get(url, verify=False, timeout=5).text
url2 = re.findall('"playurl":"(.*?)&fromtag=', str)
print url2[0]
但是总感觉好像哪里不对。好吧,想到妹子用python,这画面…
还是顺手练练VBS吧,最近好像经常和VBS打交道的样子。
<html>
<head>
<hta:application sysmenu=no scroll=no border=none>
<script language="vbscript">
'隐藏mshta窗口,参考我之前CVE-2017-0199那篇文章中hta的写法
sub sub1
me.close
end sub
me.resizeto 0,0
me.moveto 0,0
window.settimeout "sub1",1
url_1=Inputbox("input share link:")
Msgbox("share link:" & vbCrLf & url_1)
'VBS HTTP GET
Dim http
Set http = CreateObject("Msxml2.ServerXMLHTTP")
http.open "GET",url_1, False
http.send
response_t = http.responsetext
'msgbox response_t
'正则匹配,这里仅获取第一个匹配的链接
Function RegExpTest(patrn, strng) 
 Dim regEx, Match, Matches
 Set regEx = New RegExp
 regEx.Pattern = patrn
 regEx.IgnoreCase = True
 regEx.Global = True
 Set Matches = regEx.Execute(strng)
 RegExpTest = Matches(0)
End Function 
patrn = "http://dl.stream.kg.qq.com.*.m4a"
url_2 = RegExpTest(patrn,response_t)
msgbox("got real link :" & vbCrLf & url_2)
'IE打开链接并下载
set IE = CreateObject("InternetExplorer.Application") 
IE.Visible = true 
IE.Navigate url_2
</script>
</html>

保存成hta文件,双击打开简单方便:
《VBS代码练手》获取到真实链接自动打开IE进行下载:
《VBS代码练手》

点赞

发表评论