讲在前面
本篇旨在简单总结js与Python加密的一些例子,文中演示的案例也是面向新手,如果有大佬很碰巧看到这篇文章,欢迎加我交流,咸鱼愿意付费学习。
常用的加密有哪些?
- 对称加密(加密解密密钥相同):DES、DES3、AES
- 非对称加密(分公钥私钥):RSA
- 信息摘要算法/签名算法:MD5、HMAC、SHA
学习资源推荐
冷月大佬的博客:https://lengyue.me/
突破前端反调试–阻止页面不断debugger:https://segmentfault.com/a/1190000012359015
岚光的JavaScript反调试和混淆:https://0x0d.im/archives/javascript-anti-debug-and-obfuscator.html
常用调试流程
以下是可以参考的调试流程(面向新手):
- 如果网页有跳转,必须勾选 preservelog 防止丢包
- 看一下有没有框架 右键查看框架源代码(弹出式登陆界面)
- 登陆尽量使用错误密码 防止跳转
- 查看关键登陆包 分析哪些参数是加密的
- 使用别的浏览器分析哪些参数是固定的值
- 初步猜测加密方法
- 搜索
- 直接搜索参数
- pwd=
- pwd =
- pwd:
- pwd :
- 密码框地方右键 检查 查看 id name type
- 直接搜索参数
- 找到加密的地方(重点)
- 调试
找出所有的加密代码
- 从最后一步开始写起,缺啥找啥
- 如果找的是函数的话 search 要带上 function xxx
- 如果看到加密的地方有个类,并且之后是用 prototype 把方法加在原生对象上的话,要把
所有加在原生对象上的方法都找出来 - 函数找多了没关系,只要不报错不会影响结果,但是不能找少了
- 从最后一步开始写起,缺啥找啥
DES加密
js调试实战案例
- 为了避免被删文,所以这里就不说是哪个网站了,有需要可私信
- 我们先参照上面的调试流程抓包,搜索加密参数’password’,经过测试通过’password=’这关键字找到了加密所在的js。
- 经过测试(步骤7)在文件内搜索’password:’找到加密位置,并通过断点确认了猜测。
- 通过点击提示的路径,我们找到以下代码:
找到这里就可以把需要的js代码扣出来,然后一步步调试了,通过补齐缺失的代码,得到以下js加密代码并运行:
1
2输出运行结果’+g64648uhmWlN9eoU3Tszw==’,与我们抓包的结果相同。
Base64编码
js调试实战案例
- 同样参照上面的调试流程,搜索加密参数’encodePassword’,经过测试通过’encodePassword =’这关键字找到了加密所在的js,并通过断点验证
- 找到关键加密位置后,查看加密的js文件,直接复制出来即可
- base64编码比较简单,直接复制补上我们的密码,输出的就是编码后的字段了
Python实现加密方法合集
这里给大家推荐一个大佬写的代码(我就不献丑了),记得给大佬来个star
GitHub地址:
1 | https://github.com/dhfjcuff/R-A-M-D-D3-S-M-H/blob/master/RSA-AES-MD5-DES-DES3-MD5-SHA-HMAC.py |
小结
本文简单介绍了关于js调试加密字段的流程,并且分别调试了关于DES与Base64加密的两个案例。
文中举例的案例属于菜鸟级别,但是千万因为这样就小瞧js逆向这门学问,因为上面写的案例其实连JS逆向入门的门槛都没跨过。