目录
逆向基础
断掉调试
通过浏览器站点控制台(F12),进行断掉调试js代码,查看和调试代码。(断点处,代码会停在断点,不继续运行。还可通过控制台查看断点前的函数值,也称为作用域)
基本常见的加解密方式
对称加密、非对称加密、Hash散列值…等等
常见对称加密如AES加密、DES加密。非对称加密RAS加密。Hash如MD5、SHA、国密SM1,2,3,4等。
encrypt-labs靶场
https://github.com/SwagXz/encrypt-labs
搭建过程
使用phpstudy搭建即可,但需要导入数据库,否则无法正常使用。源码当中有sql后缀配置文件,即数据库文件。
导入数据库可以使用第三方工具或mysql的命令行。
简单方式的创建数据库信息,可以将sql后缀数据库文件导入到第三方工具,直接执行即可创建数据库,如navicat。
完成上述过程,即可搭建完成,可正常访问。
注意:
默认密码:admin/123456
默认访问地址http://127.0.0.1(混淆)
http://127.0.0.1/easy.php (无混淆)使用无混淆的进行学习
靶场基本教程
首先需要加解密工具或插件。
burp插件:https://github.com/f0ng/autoDecoder
浏览器插件:Ctool 程序开发常用工具,https://ctool.dev/
若插件使用不熟悉,可直接使用在线的加解密平台也可基本实现加解密。
以下主要是常见的加解密以及一些基本加解密,若有复杂加解密环境情况,也可自行编写脚本,结合此插件通过接口加解密进行处理。也可使用其他方法或工具。
AES加密key前端体现(固定key)
1、正常可任意输入用户名密码,选择第一关登录接口,AES固定key。
2、使用F12断点调试,在登陆js处打下断点,查看js代码运行情况,向上翻找执行记录,发现js当中AES加密固定key,使用AES-CBC方式进行加密以及填充方式。最后得到加密的数据encryptData参数值内容为加密信息。
填充方式以及加密参数:
数据包信息:
观察发现encryptData参数加密内容加密后还进行了一次URL编码。