长亭百川云 - 文章详情

WEB前端的渲染艺术

楼兰学习网络安全

56

2024-07-13

一、背景介绍

从众测中屡次重复忽略,却不明如何做到又快又细的手法;在大佬的阴影下成长,走出了第二次瓶颈,从而悟到的前端渗透进阶技巧。

二、前端渲染

1.条件成立

JS流程控制语句也就是做判断(if语句),if语句是基于条件成立才执行相应代码时使用的语句。

示例:

2.响应包替换关键字

引用浏览器JS反调试与绕过可以直接替换响应包中逻辑来达到条件成立,copy楼兰师傅的响应包替换关键字细节。

BurpSuite - Proxy - Options - Match and Replace

将debugger关键字设置为console.log('debugger')

这个时候我们再打开开发者工具时,便可以看到没有进入暂停页面

三、案例分析

前端渲染技巧需满足3个条件

1、webpack前端项目构建框架包含所有前端功能

2、不是模板渲染设计方式

3、条件成立

登录框站点通常我们渗透都会采用教科书方式爆破与翻阅JS获取api进行测试,那么存在一个痛点就是达不到又快又细的情况,却常常因为找不到POST参数而痛失漏洞。

1、webpack前端项目构建框架包含所有前端功能判断

存在app.js,chunk.js或翻越代码方式确认,也可以使用前端插件进行判断Vue.js devtools,Augury,React Developer Tools等谷歌插件

2、不是模板渲染设计方式

判断它是否模板渲染方式根据前端暴露出来的信息去判断,如访问aspx输出html页面内容大概率就是模板引擎渲染,所以我们没办法欺骗前端来达到我们要看的内容,因为无法欺骗后端逻辑。

3、条件成立

通过压缩混淆的JS代码进行条件成立,有2种方式

3.1 伪造api返回包

那么达到前面说的需webpack前端项目构建框架包含所有前端功能,不是模板渲染设计方式,接下来就是满足第三点条件成立。

确定登录所需条件,根据代码块进行分析所需的条件,从代码中得到逻辑,请求接口后返回包需要返回{"data":{"AccessToken":"1"}}才能条件成立,条件成立执行e()

当第一个条件成立满足后测试发现请求了info获取信息的接口

继续追踪接口进行分析,从代码块中得到的逻辑,请求接口后返回包需要返回{"data":{"UserRole":"1","UserName":"admin","RoleName":"system"}},才能条件成立,条件成立执行e()

当所有条件成立那么就达成了前端渲染的技巧,利用这样的技巧可以达到又快又细的标准也解决了寻找post参数的烦恼。

3.2 篡改js代码

没找到案例简单的做个示例:

当在前端渲染的过程中,重复的逻辑一直使你的需要去达到更多的条件成立需求,那么不采用pretty print,直接搜索出对应的代码进行replace为空就能减少条件成立的需求。

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2