好友
阅读权限20
听众
最后登录1970-1-1
|
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 |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|