最近朋友说了一个神奇的网站,看到了一个神奇的app
http://www.xiaodao.la/i-wz-73033402.html
查询坦白说的网站
试了下还真可以,作者做得这么精致,scanf师傅就去逆了一下,得到了查询接口,emmmm连类名定义都是shell 23333。
CTF模式启动,查看了下源码:
原始接口应该是被ban了
然后看一下这个js加密,最开始不觉得有用,先放在一边。
function decrypt(a) {//没错这个函数就是偷的,我懒得写
a = a.replace('*S1*', '');
//console.log(a);
var b = [{
oe: '0',
oK: '1',
ow: '2',
oi: '3',
'7e': '4',
'7K': '5',
'7w': '6',
'7i': '7',
Ne: '8',
NK: '9',
Nv: '9'
}, {
4: '5',
6: '1',
n: '0',
'-': '2',
o: '3',
v: '4',
C: '6',
S: '7',
c: '8',
E: '9'
}, {
5: '1',
z: '0',
A: '2',
i: '3',
P: '4',
k: '5',
s: '6',
l: '7',
F: '8',
q: '9'
}],
c = [];
return a.split('').forEach(function (e, f) {
if (1 == f % 4) {
var g = c.pop();
c.push(g + e)
} else c.push(e)
}), c.map(function (e, f) {
return b[f % 3][e] || '*'
}).join('')
}
Burp一条龙服务启动:
经过一番查找,发现了这个
发送的是这样的json数据
箭头指向的应该就是qq号码了,不过加了密
从接下来这个请求可以确定QQ号码应该就是这个它了
腾讯的js大多做了304跳转,找了很久都没发现用于解密的js,太菜了算了。
我们刚才在神奇网站发现的js在现在就能派上用场了
改成python是这样的:
# -*- coding: utf-8 -*-
# Author : haya
import sys
def encode(key):
d = {"oe": 0, "n": 0, "z": 0,
"oK": 1, "6": 1, "5": 1,
"ow": 2, "-": 2, "A": 2,
"oi": 3, "o": 3, "i": 3,
"7e": 4, "v": 4, "P": 4,
"7K": 5, "4": 5, "k": 5,
"7w": 6, "C": 6, "s": 6,
"7i": 7, "S": 7, "l": 7,
"Ne": 8, "c": 8, "F": 8,
"NK": 9, "E": 9, "q": 9}
a = key[4:]
ans = ''
l = len(a)
i = 0
while (i < l):
if i + 1 < l:
x = a[i] + a[i + 1]
if x in d.keys():
ans = ans + str(d[x])
i = i + 2
continue
if a[i] in d.keys():
ans = ans + str(d[a[i]])
i = i + 1
print(ans)
if __name__ == '__main__':
encode(sys.argv[1])
这里的解密方式应该并没有得到腾讯的加密方式,而是用过暴力破解得到的,所以可能有些不准确,不过越靠前的号码越准。
好啦完毕。
现在抓包,解密,就可以知道坦白说是谁发的了
最后膜一波scanf大佬