4_js逆向学习笔记之搜索定位调试法

实例网站:https://sk.open.com.cn/stuspace-auth/#/login
学习目的: 找到登录所用的password的加密位置
1、网页上输入,身份证号、密码,本例中以身份证号=“111111111111111111”、密码:123456为例。F12打开调试工具,登录,抓包,抓包结果如下图所示:
在这里插入图片描述
发现只有一个网络请求,请求方式是POST, 登录的url地址为https://sk.open.com.cn/api/student/auth-stu-service/oauth/token,在post的请求体中包含了password的加密之后的密文。

2、使用快捷键Ctrl + shift + f打开搜索按钮,搜索password,搜索结果如下图:
在这里插入图片描述
首先排除jquery-1.11.o.min.js和axios.min.js这俩个文件,因为对password的加密不可能存在在这两个文件中,因为这两个文件是前端框架和vue中推荐使用的异步请求包。因此password的加密只可能存在剩下的3个js文件中。
3、打开sensorsdata.js文件,格式化后搜索password,结果如下:
在这里插入图片描述
在这里插入图片描述
发现password只出现在上面2处位置,很明显不可能存在password的加密代码
4、打开app.7323a289.js文件,重复3步骤,搜索结果如下:
在这里插入图片描述
这3处很明显肯定不是password的加密处,继续看下去,发现只可能在如下3处有可能会有加密,分别在这三处加上断点:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4、点击网页登录按钮,进行断点调试
在这里插入图片描述
发现t.password = "123456"也就是我们输入的未加密之前的password,Object(d.a)(t.password)应该是一个方法,并把password当做参数进行传递,因此我们看下Object(d.a)(t.password)的值如下图:
在这里插入图片描述
在这里插入图片描述
发现Object(d.a)(t.password)的值就是我们password经过加密之后的密文,因此我们知道了加密位置应该就在Object(d.a)中,因此我们在Object(d.a)中打一个断点,如下图:在这里插入图片描述
这里的c(e)中e就是“123456”, c(e)的值就变成了密文,因此c(e)函数就是首次加密的位置,在c()方法中再次打个断点如下图:

在这里插入图片描述
这次发现了,对password进行了一次md5加密,继续单步执行到上一个断点处
请添加图片描述
在这里发现被加密之后得到的t,又被传入到了r()函数之中,在r()函数之中打一个断点得到,显示的结果如下:
在这里插入图片描述
发现这里又对上次加密之后的结果进行了sha1加密,继续单步执行,跳回到上一个断点处
在这里插入图片描述
这里发现,把n得到的加密值又进行了一次sha1加密,并转化为大写返回,加密之后就是我们的password的密文了。

小知识点:
1、一种常见的加密算法的加密特征
密文长度是32位或者16位的有可能是md5加密,密文长度位40位的有可能是sha1
2、 js调试的时候调试技巧
1. 对象中,逗号作为一行的结尾时,对象中的代码不能打断点,可以向上找var或者fucnction定义处来打断点
2. 如果想调试函数内的代码,要把断点打在函数内,或者函数的结尾"}"所处的行
3. Promise代表异步执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值