JS逆向-Sign签名&绕过技术&算法可逆&替换库模拟发包&堆栈定位&特征搜索&安全影响

Ethan医生2个月前逆向75

 JS逆向-Sign绕过-签名影响&加密解密


Sign(签名)机制广泛应用于API请求、数据传输、身份验证等场景,用于确保数据的完整性和来源可信性。它对渗透测试(Penetration Testing)带来了显著的影响,既有安全增强作用,也增加了测试的挑战,测试人员需要结合逆向分析、动态Hook、服务器逻辑测试等方法,才能有效发现潜在的绕过漏洞。

 

#Sign机制对渗透测试的正面影响:

1、提高安全性,减少低风险漏洞

防篡改:Sign通常基于HMACRSAAES等算法,确保数据在传输过程中未被篡改,减少中间人攻击(MITM)风险。

防重放攻击(Replay Attack):时间戳(Timestamp)和Nonce机制使得截获的请求无法直接重放。

防未授权访问:请求必须携带正确的签名,否则会被服务器拒绝,减少越权漏洞(如未授权API访问)。

2、推动更深入的测试方法

迫使更关注业务逻辑漏洞(如绕过签名校验),而非仅依赖自动化工具扫描。

 

#Sign机制对渗透测试的负面影响:

1、增加渗透测试的复杂度

逆向分析难度大:如果Sign算法被混淆或加密,测试人员需花费大量时间逆向JavaScript/App代码。动态调试受限:Burp Suite、Fiddler等工具难以直接修改请求,因为签名错误会导致请求失效。自动化扫描失效:大多数Web漏洞扫描器(如AWVS、Nessus)无法自动处理签名,导致误报或漏报。

2、可能掩盖漏洞,导致误判

误以为“有Sign=安全”:开发人员可能过度依赖Sign,忽略其他安全措施(如输入过滤、权限控制)。签名绕过漏洞:如果签名校验逻辑存在缺陷(如客户端计算签名、弱密钥、算法可预测),仍可能被绕过。

3、影响测试效率

每次测试需重新生成签名,手动测试效率降低。

如果Sign机制频繁变更(如密钥轮换),测试脚本可能失效。

 

#案例1-Yakit(主要了解安全影响)

如登录框口令爆破-数据包完整性校验才能进入正常逻辑

 

#案例2-算法逆向绕过

0、入口

根据URL路径下XHR断点:/api/questions/lists

 

1、调用堆栈

根据调用堆栈找sign加密逻辑

t.headers.Sign = h

h = bs()(o + c + r + n + o)

 

2、分析bs()和参数值

下断点bs,调试输出找声明为MD5算法

o是上边写死的

c是cookie里面uu参数的值

r = t.url.replace("/api", "")

n是时间戳n = (new Date).getTime()

o = "12b6bb84e093532fb72b4d65fec3f00b"

c = "dbbc7981-906b-45c5-8102-edf02376f9c4"

r = "/api/questions/lists".replace("/api", "")

n = (new Date).getTime()

sign = crypto.MD5(o + c + r + n + o).toString()

console.log(sign)

 

3、验证sign逻辑(配合AI发包)

 

 

#案例3-算法逆向绕过

0、入口

根据URL参数名,全局搜索sign=

 

1MD5算法

固定w.LI=6dVjYLFyzfkFkk t.q翻译词

y()("6key_web_new_fanyi".concat(w.LI).concat(t.q.replace(/(^\s*)|(\s*$)/g, ""))).toString().substring(0, 16);

 

2、$Q

找密钥 r = s(t)=L4fBtD5fLC9FQw22

function l(e) {

var t = .......

, r = n.enc.Utf8.parse(s(t))

, o = n.AES.encrypt(e, r, {

mode: n.mode.ECB,

padding: n.pad.Pkcs7

});

return o.toString()

}


标签: JS逆向

相关文章

JS逆向-安全辅助项目&JSRpc远程调用&Burp插件autoDecode&浏览器拓展V_Jstools(上)

JS逆向-安全辅助项目&JSRpc远程调用&Burp插件autoDecode&浏览器拓展V_Jstools(上)

➢ JS逆向-项目-V_jstools&autoDecode&JsRpc#V_Jstoolshttps://github.com/Zjingwen/v-jstools浏览器插...

JS逆向-开发者工具&网络请求筛选&调用堆栈链&断点调试方法&数据作用域&控制台分析

➢ JS逆向-F12开发者工具-使用指南➢ JS逆向-F12开发者工具-调用堆栈➢ JS逆向-F12开发者工具-断点调试#前置说明1、JS逆向与安全事实上,前端的逆向通俗...

JS逆向-安全辅助项目&接口联动&JSRpc进阶调用&BP插件autoDecode&JsEncrypter(下)

➢ JS逆向-项目-项目联动&自动接口&Burp发包#JSRpc进阶当我们遇到一些前端加密的时候,通常我们会去逆向JS,找到加密函数,然后使用burp插件或者python实现...

JS逆向-代码混淆&AST技术&抽象语法树&Obfuscator混淆&还原接口&数据节点&AI生成

➢ JS逆向-代码混淆-加密意义&常见方法➢ JS逆向-代码混淆-特征识别&自动分析➢ JS逆向-代码混淆-AST语法树&AI辅助简单来说AST就...

JS逆向-安全辅助项目&Yakit热加载&魔术方法&模版插件语法&JSRpc进阶调用&接口联动

#Yakit的热加载参考:https://yaklang.com/products/Web%20Fuzzer/fuzz-hotpatch简单来说主要以数据包发包前和发包后的数据修改功能 1、...

JS逆向-反调试绕过&事件检测&无限Debug&篡改猴Hook&替换指向&匹配修改&条件断点

JS逆向-反调试绕过&事件检测&无限Debug&篡改猴Hook&替换指向&匹配修改&条件断点

➢ JS逆向-F12开发者工具-使用指南➢ JS逆向-F12开发者工具-调用堆栈➢ JS逆向-F12开发者工具-断点调试➢ JS逆向-反调试分析技术-检测&am...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。