这个布局排版不会,凑合看一下吧
答题和问卷的协议几乎一样
工具:edge浏览器,fiddle
使用语言:python
QQ截图20220421120331.png (86.11 KB, 下载次数: 0)
下载附件
2022-4-21 12:05 上传
为了保证所有cookies和其他缓存不会影响接下来的抓包,这里新建一个InPrivate窗口(无痕)
QQ截图20220421121046.png (40.18 KB, 下载次数: 0)
下载附件
2022-4-21 12:10 上传
这里有个小技巧
vj
的会进行debug处理但是
vm
不会,可以直接修改地址,省去一些步骤
例如:ks.wjx.top/vj/xxxxx.aspx
改成:ks.wjx.top/vm/xxxxx.aspx
先提交一次看需求的参数
QQ截图20220421121549.png (94.88 KB, 下载次数: 0)
下载附件
2022-4-21 12:16 上传
url附加参数如下
[Python] 纯文本查看 复制代码
shortid
starttime
source
submittype
ktimes
hlv
rn
jqpram
jcn
nw
jwt
jpm
t
jqnonce
jqsign
post附带的data需求参数
[Python] 纯文本查看 复制代码submitdata
我们分析参数来源当然要看参数怎么生成的,但是直接去搜索参数发现搜不到,于是查看发起程序,第一个是jq的不用看,直接点第二个jqmobo2.js
QQ截图20220421122129.png (27.65 KB, 下载次数: 0)
下载附件
2022-4-21 12:21 上传
简单获得和固定的的参数:
shortid : ks.wjx.top/vm/
xxxxx
.aspx
starttime : HTML页面内获取
source : directphone
submittype : 1
ktimes : 操作时间 可随机
hlv : 1
rn : HTML页面内获取 var rndnum="
607374188.63586548
";
nw : 1
jwt : 4
jpm : 70
t : 现在时间戳
jqnonce : HTML页面内获取 var jqnonce="
d0c9ba05-56ab-4938-9b6f-8844f114d279
";
接下来还有jqsign,jcn,jqpram 三个参数是通过加密或者运算得来的
jqsign
QQ截图20220421135900.png (104.44 KB, 下载次数: 0)
下载附件
2022-4-21 13:59 上传
通过代码观看发现,jqsign是有jqnonce经过dataenc获得,直接断点跳过去,把代码拿出来
[JavaScript] 纯文本查看 复制代码
function dataenc(a) {
var c, d, e, b = ktimes % 10;
for (0 == b && (b = 1),
c = [],
d = 0; d
函数内用到ktimes,所以我们把代码改改,把ktimes传进去
function dataenc(a,ktimes) {
var c, d, e, b = ktimes % 10;
for (0 == b && (b = 1),
c = [],
d = 0; d
QQ截图20220421135928.png (160.22 KB, 下载次数: 0)
下载附件
2022-4-21 13:59 上传
jqpram
从代码中得到 [JavaScript] 纯文本查看 复制代码window.jqParam && (w += "&jqpram=" + encodeURIComponent(jqParam)),
jqpram是通过encodeURIComponent(jqParam)
当前JS内并没有关于jqParam的来源,我们全局搜索,发现来源于一个混淆的js,用的是ob混淆
"
下载好node环境,git文件,配制好系统环境后执行
QQ截图20220421142132.png (10.43 KB, 下载次数: 0)
下载附件
2022-4-21 14:21 上传
QQ截图20220421142231.png (150 KB, 下载次数: 0)
下载附件
2022-4-21 14:22 上传
QQ截图20220421142325.png (26.04 KB, 下载次数: 0)
下载附件
2022-4-21 14:23 上传
并把文件用fd映射到网页去,方便调试和了解代码,刷新网页
断点测试
QQ截图20220421142535.png (189.11 KB, 下载次数: 0)
下载附件
2022-4-21 14:25 上传
[JavaScript] 纯文本查看 复制代码
var _0x4b9009 = rndnum["split"](".")[0]; //分隔rn 获取前置 给予_0x4b9009
var _0x37348b = abcd1(parseInt(_0x4b9009));//abcd1处理_0x4b9009 给予_0x37348b
var _0x307a46 = (_0x37348b + "")["split"]("");//_0x37348b 给予_0x307a46
var _0x2f4e03 = $("#starttime")["val"]() || window["initstime"];//获取starttime 给予_0x2f4e03
var _0x17071c = abcdu(new Date(_0x2f4e03["replace"](new RegExp("-", "gm"), "/"))); //转换时间戳通过abcdu处理 给予_0x17071c
var _0x12e25a = _0x17071c + "";
if (_0x17071c % 10 > 0) _0x12e25a = _0x12e25a["split"]("")["reverse"]()["join"](""); //_0x17071c%10>0 处理
var _0x24bc24 = parseInt(_0x12e25a + "89123"); //时间戳 1650522320+89123 结果:165052232089123
var _0x307a46 = (_0x24bc24 + "" + (_0x37348b + ""))["split"]("");//分隔上面
var _0xd36323 = abcd4(_0x307a46, "kgESOLJUbB2fCteoQdYmXvF8j9IZs3K0i6w75VcDnG14WAyaxNqPuRlpTHMrhz");//abcd4处理_0x307a46
var _0xc23193 = _0x24bc24 + _0x37348b + parseInt(activityId);//值得一提activityId打开页面的时候就处理了
jqParam = abcd3(_0xc23193, _0xd36323);
var _0x16feb7 = abcd5(jqParam);
jqParam = _0x16feb7;
activityId :页面获取
[JavaScript] 纯文本查看 复制代码
function DecodeId(input) {
return input ^ 2130030173;
}
var activityId =2035206417;
activityId = DecodeId(activityId);
这里已经分析完了,然后处理一下逆向后的js发出来
[JavaScript] 纯文本查看 复制代码
function abcd1(_0xd7a12a) {
return abcd2(_0xd7a12a, 3597397);
}
function abcd2(_0x5d3f51, _0x2da958) {
if (!abcdx()) return;
var _0x17fe67 = 2147483648;
var _0x330f76 = 2147483647;
var _0x8c2ab2 = ~~(_0x5d3f51 / _0x17fe67);
var _0x33045d = ~~(_0x2da958 / _0x17fe67);
var _0xa5b0b1 = _0x5d3f51 & _0x330f76;
var _0x352369 = _0x2da958 & _0x330f76;
var _0x3f97b8 = _0x8c2ab2 ^ _0x33045d;
var _0x4307f8 = _0xa5b0b1 ^ _0x352369;
return _0x3f97b8 * _0x17fe67 + _0x4307f8;
}
function abcd3(_0x2a839f, _0x29778) {
if (_0x2a839f - 62 0) _0x12e25a = _0x12e25a["split"]("")["reverse"]()["join"](""); //_0x17071c%10>0 处理
var _0x24bc24 = parseInt(_0x12e25a + "89123"); //时间戳 1650522320+89123 结果:165052232089123
var _0x307a46 = (_0x24bc24 + "" + (_0x37348b + ""))["split"](""); //分隔上面
var _0xd36323 = abcd4(_0x307a46, "kgESOLJUbB2fCteoQdYmXvF8j9IZs3K0i6w75VcDnG14WAyaxNqPuRlpTHMrhz"); //abcd4处理_0x307a46
var _0xc23193 = _0x24bc24 + _0x37348b + parseInt(activityId); //值得一提activityId打开页面的时候就处理了
jqParam = abcd3(_0xc23193, _0xd36323);
var _0x16feb7 = abcd5(jqParam);
jqParam = _0x16feb7;
return jqParam;
}
var rndnum = "607374188.44535993";
var starttime = "2022/4/21 14:25:20";
var activityId = "129722188";
console.log(_0x156205(rndnum, starttime, activityId))
至于post的参数,应该都能看懂
QQ截图20220421145836.png (29.43 KB, 下载次数: 0)
下载附件
2022-4-21 14:59 上传
到此所有参数分析完毕,如有遗漏或不解,可以回帖问我