网站建设课程ppt模板,唐山市建设交易中心官方网站,崇礼网站建设,南宁网站建设是什么前言#xff1a;
传统的接口在传输的过程中#xff0c;是非常容易被抓包进行篡改#xff0c;从而进行中间人攻击。这时候我们可以通过对参数进行签名验证#xff0c;如果参数与签名值不匹配#xff0c;则请求不通过#xff0c;直接返回错误信息#xff0c;从而防止黑客…前言
传统的接口在传输的过程中是非常容易被抓包进行篡改从而进行中间人攻击。这时候我们可以通过对参数进行签名验证如果参数与签名值不匹配则请求不通过直接返回错误信息从而防止黑客攻击或者大大增加了黑客攻击的成本。白帽子在挖洞的时候也经常会遇到这种情况大多数不会逆向的白帽子则会放弃这些有着攻击成本的接口。大多数也会有这样子的想法这些个接口都加了防护了说明厂商对这个接口挺重视的肯定做了安全检测自然是不可能有洞可捡了。反过来想厂商正是因为加了防护从而对代码疏忽了所以这些地方恰好就是挖逻辑漏洞的突破口。
平台aHR0cHM6Ly93d3cudnVsYm94LmNvbS8
厂商某企业src
正文
开局一个搜索框 输入值抓包接口携带了一个sign参数。 技巧
此处有两种方法逆向找出对应的加密点
第一种是笨方法直接搜索对应的sign值去找到其加密的关键位置。第二种是找到发包的地方一直跟栈到明文加密的地方。
搜索sign网站里面出现了很多sign关键词不利于我们进行逆向分析 从查看请求发起的相关进程(脚本)去进行发包跟栈 进入发包的地方打断点。 回溯跟栈找找有没有比较显眼的关键词。
帮助网安学习全套资料S信免费领取 ① 网安学习成长路径思维导图 ② 60网安经典常用工具包 ③ 100SRC分析报告 ④ 150网安攻防实战技术电子书 ⑤ 最权威CISSP 认证考试指南题库 ⑥ 超1800页CTF实战技巧手册 ⑦ 最新网安大厂面试题合集含答案 ⑧ APP客户端安全检测指南安卓IOS
大概跟了几个栈找到了sign关键词但是并不确定这个地方的sign参数是不是我们发包的那个sign参数打下断点盲测一下。 再次发包的时候断点断住了。这个sign参数是一个f对象的一个函数并不是一个sign参数值。而我们想要找到的是sign参数值经过猜测这个断点能够在携带sign参数的那个发包时断住就肯定与sign参数有关。直接进入函数内部查看。 映入眼帘的是一个f函数将断点断到返回值的地方查看一下返回值是什么呢。 在控制台打印一下返回值。很眼熟很像我们发包的时候携带的参数 分析一下f函数看看sign参数在哪里生成的。
sign是在5790行被赋值的。
可以看出sign参数是appSignKeykeywordnoncestrserverTimestampsourcetimestamp拼接之后传进了s函数生成的。除了appSignKey是代码生成的其余都是发包里面携带的明文。 appSignKey参数
从f函数里面代码可以分析出appSignKey是由n赋值的n又是由c经过一段三元表达式生成的。c是一段字符串直接上手扣代码。 生成n的三元表达式用到了arguments直接到浏览器复制arguments var c 10f6cf80184377cd5487b4746a8a67da17540449fa40b408f13ccdd3d3059cb394c0e1569043eed2arguments {0: {keyword: A型胸腺瘤,source: 1,serverTimestamp: 1706072080923},1: 4bTogwpz7RzNO2VTFtW7zcfRkAE97ox6ZSgcQi7FgYdqrHqKB7aGqEZ4o7yssa2aEXoV3bQwh12FFgVNlpyYk2Yjm9d2EZGeGu3
}var n arguments.length 1 void 0 ! arguments[1] ? arguments[1] : cconsole.log(appSignKey---n)ole.log(n)sign参数
有了appSignKey参数就可以与发包参数拼接传进s函数。
appSignKey4bTogwpz7RzNO2VTFtW7zcfRkAE97ox6ZSgcQi7FgYdqrHqKB7aGqEZ4o7yssa2aEXoV3bQwh12FFgVNlpyYk2Yjm9d2EZGeGu3keywordA型胸腺瘤noncestr20565646serverTimestamp1706072080923source1timestamp1706081268690看一眼就知道是md5加密完结撒花。
结尾
部分数据代码已做脱敏处理。