关注它,不迷路。
本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!
1. 目标网站
"aHR0cHM6Ly9tbXp6dHQuY29tL3Bob3RvLzkyOTgy"
2. 抓包分析
打开网站后,一如既往的停留在了debugger的位置,往上跟堆栈,看到了熟悉的ob混淆代码:
这种代码我一般是先还原,再替换,可以轻松过掉debugger:
还原后替换再次分析,发现了一些加密数据,可以猜出后面加载的jpg图片是通过该加密数据解密而来,而我们的目的是需要获取这些jgp图片,因此也就需要将加密数据进行解密。
3. 解密分析
直接看上一步骤还原后的代码,发现了一个熟悉的AES加密:
可以说,什么都一目了然,我们在函数的第一行打上断点,观察解密前的数据:
可以看到,传进来了两个参数,第一个实参是 网站链接的 id 标识,第二个则是上面接口请求的加密数据。
4. 代码改写
核心代码有了,接下来就是改写成Python代码
一,将整个_0x90fx 函数抠下来,丢给chatGPT改写:
二,md5没有处理,告诉它 _0x3ce308.MD5 是标准的md5,继续改写:
三,直接复制代码的代码,并将两个实参也复制下来,并运行,报错了:
四,将错误报给chatGPT,让它继续修正:
原来是需要强转,修改后继续运行:
发现是 json解析出错了,那肯定是解密数据有问题,所以打印下解密数据:
发现是这行代码的问题:
decrypted_data = _0x3ed555.decrypt(base64.b64decode(_0x2b6686)).rstrip(b'\x00')
后面是 "0x0b",所以把"0x00"改成 "0x0b"就可以了。
再次运行:
完美。
今天的文章就分享到这里,后续分享更多的技巧,敬请期待。
欢迎加入知识星球,学习更多AST和爬虫技巧。