freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

安全测试辅助之如何快速找出元素绑定的事件函数代码
FreeBuf_282280 2018-09-14 11:00:34 410558

*本文原创作者:ForrestX386,本文属FreeBuf原创奖励计划,未经许可禁止转载

0x00. 前言

在过往的安全审计中,我经常会遇到一些网站,其前端发送至后端的数据被加密处理,此时如果我想利用burpsuite之类的工具测试其是否存在弱口令等安全风险,那我必须得知晓前端发送至后端的数据包如何构造,如果要了解前端发送至后端的请求数据如何构造,那么必须要找到元素绑定事件对应的源码,下文,我简单总结一下常见的发现元素绑定事件对应源码的方法,如有错误或不足之后,还望各位斧正。

0x01. 正文

1)类型1:元素源码中指明了绑定的js函数

​ 比如10086的登录框

右键登录按钮,选择检查 (chrome 为例)

1.png

找到此类型元素对应事件源码的关键就是在js源码中利用关键字搜索,然后找到源码,此例以LoginSubmit在源码中搜索

使用CTRL + SHIFT +F 在全局文件中检索会快一些

2.png

然后双击检索结果即可跳转到对应函数源码

3.png

这里有个小技巧,可以不用以函数名为关键字进行检索,在chrome 浏览器的console中直接键入函数名LoginSubmit,然后就可以得到函数的具体定义内容,如下

4.png

双击函数定义内容,就可以跳转到相应地js源码文件中找到函数的定义位置

2)类型2: 通过addEventListener 添加元素事件监听(以Jquery为代表的DOM操作类库元素绑定事件)

此例以我司内控堡垒机二次认证界面的登录框绑定事件为例

右键登录按钮,选择检查 (chrome )

选择右侧的Event Listeners,选择click (登录当然要先click喽)

chrome_jquery_click.png

登录按钮绑定的click事件源码位于index文件的39行,点击跟进去,然后就找到了源码

chrome_jquery_click2.png

如果你用的是firefox浏览器,则操作如下

右键 选择登录框,选择查看元素

firefox_juqery_click_bind.png

firefox_juqery_click_bind2.png

点击灰色区域的event,则可显示出源码

当然也有一些浏览器插件可以帮助我们找出元素绑定的事件源码,比如chrome 的Visual Event

2)类型3: 动态绑定事件(以VUE为代表的以数据为操作核心的带有双向绑定特性的类库元素事件绑定)

此例以我司内控堡垒机子节点界面中刷新按钮绑定的click 事件对应的js源码

vue_click_bind.png

右键 刷新按钮,依次选择检查-->Console, 然后设置条件使得网络请求异常(比如用SwitchyOmega 挂一个不存在的代理),当异常抛出时候,可在console 下打印函数的调用栈,然后便可找到元素绑定事件对应的源码

vue_click_bind2.pngvue_click_bind3.png

0x02. 总结

如果各位有更好的点子或思路,不妨在留言中补充,谢谢

*本文原创作者:ForrestX386,本文属FreeBuf原创奖励计划,未经许可禁止转载

# 安全测试
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 FreeBuf_282280 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
FreeBuf_282280 LV.5
I am a robot,do not talk to me
  • 9 文章数
  • 3 关注者
安全应急响应 | 如何从内核中直接获取隐藏的进程信息
2018-10-23
运维安全 | 等保视角下的SSH加固之旅
2018-10-18
安全开发 | 如何让Django框架中的CSRF_Token的值每次请求都不一样
2018-10-12
文章目录