欢迎光临
我们一直在努力

js 逆向调试初学笔记

1目标网站:https://sk.open.com.cn/stuspace-auth/#/login?redirect=%2Fchoose-business
1.登录控制台抓包 密码一般输入123456  方便猜是什么加密  比如MD5  是16位 49开头  32位是e10开头    sha1 是 7c4a8d09ca3762af61e59520943dc26494f8941b
2.发现password加密了
密文是8EFC459F5837CCE06914D8C41AFDBC47A5B2AD5D  分析是40位可能是sha1加密了 但不是7c4a8d09ca3762af61e59520943dc26494f8941b可能是往里面加了东西
比如123456后面加ABC其他什么之类的或者其他的处理
3.通过search搜索 password
4.jquery  vue  axios(ajax的一个发包工具) 这些框架的min.js先过滤掉
如果搜索结果太多可以  password=,password:,或者.password (类方法调用)
因为要给password赋值多半是password=赋值或者password:对象赋值
5.在觉得可疑的地方打上断点

发现是明文的123456  我们需要的是密文 往下继续运行知道找到加密的密文
很大概率就是在这里加密的  我们就追栈  看下是那个栈调用了加密方法加密了password
上一个栈变成明文的了
很大概率就是在这里加密的  我们就追栈  看下是那个栈调用了加密方法加密了password
  分析Object(l.h)(t.username, Object(d.a)(t.password), "password").then(function(a)
Object(l.h)这种类型的我们只需要观察后面是否是()如果有Object(l.h)就是个对象
还可以在console控制台输出l.h验证他是否是对象  通过分析Object(l.h)就是l.h  起到一个迷惑作用

LoginByUsername: function(e, t) {
这里下断点                  var n = e.commit;
                   return new Promise(function(e, a) {      
                        Object(l.h)(t.username, Object(d.a)(t.password), "password").then(function(a) {
                            var o = a.data;
运行到这里已经是明文了 我们就看下这个方法哪里调用了加密在方法开始的位置下断点
重新运行断点一步一步往下执行
进入d.a
发现e=123456进过c方法调用后加密成立"E10ADC3949BA59ABBE56E057F20F883E"  e10开头32位 猜测是32位md5加密  点进c进去看一下也是MD5加密
然后把加密后的t作为参数交给r方法执行  运行结果发现r是sha1加密  n="7698946764209BE8D1AE96CF1D7DF46391184AFE"
最后一句是把2次加密后n再进行一次sha1加密     返回结果是"8EFC459F5837CCE06914D8C41AFDBC47A5B2AD5D"和我们开头的加密后的密码是相同的
所以这个登录是md5+sha1+sha1

赞(0) 打赏
未经允许不得转载:哈哈网 » js 逆向调试初学笔记

相关推荐

  • 暂无文章

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏