WEB前端的渲染艺术
2021-7-19 16:3:57 Author: mp.weixin.qq.com(查看原文) 阅读量:3 收藏

一、背景介绍

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

二、前端渲染

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为空就能减少条件成立的需求。

文章来源: https://mp.weixin.qq.com/s?__biz=Mzg4ODU4ODYzOQ==&mid=2247484054&idx=1&sn=a808c8d5f13fc0bec079af3723d6b2eb&chksm=cff992a6f88e1bb0600c3a77b4df0b6a4c4bd58b983f30cb35068782b42deb6d4fff4c14762e&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh