专栏名称: 安全祖师爷
国内领先的互联网安全媒体,WEB安全爱好者们交流与分享安全技术的最佳平台!这里聚集了XSS牛、SQL牛、提权牛、WEB牛、开发牛、运维牛,公众号定期分享安全教程及相关工具。与其在别处仰望 不如在这里并肩!
目录
相关文章推荐
华商报  ·  龙抬头吹响集结号,健步跑等你火速来报名! ·  16 小时前  
华商报  ·  龙抬头吹响集结号,健步跑等你火速来报名! ·  16 小时前  
51好读  ›  专栏  ›  安全祖师爷

快速定位前端加密方法

安全祖师爷  · 公众号  ·  · 2020-02-13 12:28

正文

相信用过我jsEncrypter这个插件的朋友,都会碰到一个问题。 那就是一些大型网站前端太复杂,以至于无法定位到前端数据加密函数所在的位置 。无法定位到加密方法所在,自然就无法编写jsEncrypter的phantomJS脚本了。k哥在今晚给了我很多灵感,让我对这个问题有一个完美的解决方案。以至于现在已是12号的凌晨3点,我仍不舍得搁浅内心零散的想法。窗外稍许的车辆略过的轰鸣,在夜深人静时显得格外刺耳。不过还好,没破坏我静静码字感觉。下面让我慢慢将这简单弱智有点零散,但细细思考,却有点意思的想法,串成一个流程。

图1-通过onClick属性定位


找到了加密数据的方法名之后,我们就可以去找一下该方法在那个js文件中定义,即可定位到位置。

图2-通过onClick定位到的方法

0x02 Event Listeners定位法

这个方法非常好,也是我觉得最好的方法。F12打开开发者工具,然后使用选择箭头选择目标标签,最后打开开发者工具Event Listeners面板。就能显示该标签对应的额事件了。我们关注的当然是click事件了。

图3-通过Event Listeners定位

由此我们就知道,我们的数据加密方法在 uni_loginv4_tangram_dde753f.js 文件的32行。点击该链接就能直接调转到代码处。

图4-通过Event Listeners定位的代码

这个方法虽然非常好,但是有一个天坑需要注意!有时候标签是有绑定方法的,但看到Event Listeners面板却是空的。我猜是因为浏览器它没有加载完全所有的数据,导致无法分析出各个元素绑定的方法。这时我们可以进行将登录整个流程走一遍,多次刷新页面,甚至可以ctrl+s将网页保存到本地等操作,总之只为一个目的: 间接告诉浏览器赶紧将一些网页资源保存下来,以供Event Listeners分析出click事件对应的方法 。目前发现这样勉强能解决。

这里插一句题外话:有一个和Event Listeners有关的辅助插件Visual Event,大家可以去体验一下。不过个人觉得不是特别好!

0x03 搜索定位法

如果遇到的情况很糟糕,页面没有指定onClick方法,Event Listeners怎么操作都是空白一片,Visual Event也是半死不活的时候。这是我们就只能自己动手,丰衣足食了。当然我承认这种情况基本不可能发生。然而谁还没有个万一呢?

先将页面ctrl+s,保存起来。然后使用notepad++搜索保存目录下所有内容。这时我们就要考虑寻找搜索关键字了。搜索操作过程虽然有点繁琐,但很简单。这里我挑比较有意思的选择搜索关键字的思考跟大家分享一下。


  1. 从源头搜,什么是我们的源头搜呢?我们触发前端数据加密,然后进行传输的整个过程皆因为点击了一个标签造成。所以我们就可以通过这个标签的 id名 class名 或者 标签名 作为关键字去搜索,就能定位到开始进行加密处理的位置。最后根据起始位置,一步一步跟进就能找到我们的加密方法。


  2. 从终点搜,什么是我们的终点呢?当然是我们的最终发送数据包这一步了。我们可以用burp进行抓包,然后分析数据包的特点,提取关键字来定位。比如我们可以拿数据包提交的路径,可以拿数据包的参数等等作为关键字。定位到加密流程的最后一步,最后一步一步回溯找到加密方法。


例如:我打算从源头开始搜,查看到源码中淘宝的登录按钮标签id值为 J_SubmitStatic ,于是我以 #J_SubmitStatic 作为关键字开始定位。







请到「今天看啥」查看全文