2020年最新真气网反调试与参数反爬解决方案

声明:该文章仅用于学习,不得用于商业用途,如有问题,请联系作者删除!
目标网址:https://www.aqistudy.cn/

反爬手段:

  1. 反调试机制
  2. 参数加密

一、反调试机制

当我们打开网页进入开发者工具时,就会触发它的反调试机制,如图:


反调试效果.png

解决方法

在反调试函数打上断点,如图第191行,重新运行,在Console处输入以下内容,将反调试方法滞空即可

function endebug(){}

二、参数加密

  • 直接全局搜索参数名hWKRQHbQa(这个是动态的)
    image.png
  • 可以看到这是一个eval加密,直接去掉eval,把剩下的拉去console打印出来


    image.png
  • 把结果拉去编辑器格式化一下,方便查看


    image.png
  • 结果已经出来了


    image.png
  • 这个即是参数名


    image.png
  • 这些即是参数的加密规则
  • 至于这个method的值是什么,断点调试即可得出,这里不详细讲述


    image.png
  • 至此完成了对参数的解密。
  • 至于如何用python eval解密 GitHub上已有人提供相应的包,可以尝试调用后,正则匹配出想要结果。https://github.com/thisforeda/js_eval_unpack

附上代码:
注意:这里有一个坑,这个data不能直接写成appId + method + timestamp + clienttype + json.dumps(obj) 原因json.dumps后冒号:后面有个空格,会影响md5的结果。

import hashlib
"""
:param secret参数 解密
"""


appId = '5ebd73491b42ee0561932f9b40c576a9'    # 该appId为测试,实际使用aqistudy文件中得出的appId
clienttype = 'WEB'
method = 'GETDATA'
# timestamp = str(int(time.time()*1000))  # 实际使用
timestamp = '1584168590849'  # 测试使用
obj = {"city": "临安"}  # 测试使用  实际根据城市变化
data = appId + method + timestamp + clienttype + '{"city":"'+obj['city']+'"}' 
 # 这里有一个坑,这个data不能直接写成appId + method + timestamp + clienttype + json.dumps(obj) 原因json.dumps后冒号:后面有个空格,会影响md5的结果
print(data)
md = hashlib.md5()
md.update(data.encode('utf-8'))
print(md.hexdigest())

# "9c341eebd3cc24d786aa0c96e008917f"   测试得出结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文转载自:http://www.freebuf.com/articles/others-articles/181...
    inspireboom阅读 7,645评论 0 13
  • 转载地址 image.png 前言 fiddler是一个很好的抓包工具,默认是抓http请求的,对于pc上的htt...
    菜菜编程阅读 21,467评论 0 28
  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 3,469评论 2 4
  • 从前有个农夫,冬天在田野里刨出一条蛇。他把蛇揣在怀里暖和透了。回家泡在散装白酒里。开春拿到集上,卖了好几百块钱。 ...
    明鸳阅读 404评论 0 1
  • 我做了阿胶养生行业2年,起初我做成品纯阿胶糕说真的没有那么强烈的感觉。 去了东阿百年堂总部和很多同窗代理商聊了很多...
    美丽琴琴阅读 414评论 0 1