利用 js 文件进行渗透
source link: https://www.tuicool.com/articles/eEzUnmr
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
点击上方“ 蓝字 ”关注 公众号 获取最新信息!
本文作者:eth10(贝塔安全实验室-核心成员)
当我们访问的站点只是一个简单的登录页面时,我们应充分利用涉及到的JavaScript脚本函数或文件。
0x01 node js站点
(1) 如何判断是JS开发的站
查看登录页面的页面源代码是如下图时,那么可以简单判断本站是一个纯JS开发的站。
另外可以通过cookie来简单判断,如cookie中有connect.sid这个键,如图所示:
(2) 查看重要js文件
查看重要文件,一是寻找配置文件,二是查看app.xxx.js文件。
(3) 查看js配置文件
通过页面源码可以看到是否存在有js配置文件,如图所示:
通过逐个访问js配置文件,可以查看到很多敏感信息,如图:
通过获取的敏感信息,有时可以直接绕过登录进入到系统中,如图:
(4) 查看app.xxx.js文件
app.xxx.js文件是系统主文件,里面可以查看到很多接口,如图:
通过获取的接口信息对应构造请求,如请求方法,header,content-type等。
(5) 构造请求
访问发现缺少必要参数,继续补充参数
最终可直接未授权访问到敏感信息,如图:
对于month格式,app.xxx.js中也有对应接口,如下图:
获取管理员敏感信息
继续尝试别的接口
发现功能树
尝试功能树中的接口,可以直接获取到管理员加密hash密码,如图:
(6) 查找接口技巧
这里提供一个简单的方式,直接在浏览器中Ctrl + F进行下列关键字搜索,对于命中的会有颜色标出。 也可以使用python进行页面解析一次性提取等。
搜索关键字:
method:"get"
http.get("
method:"post"
http.post("
0x02 Ajax通用接口写法
(1) 查看重要接口
直接查看源码中的script函数,如果发现$.ajax,那么恭喜你找到了部分接口,可能存在未授权访问。
(2) 构造请求
同样通过获取的接口进行对应构造。
没什么用,本来就是公开的接口,换一个。
发现敏感信息,如图:
还有这种接口。
对应构造请求,如图:
获取账户密码等敏感信息,之前留的图,有点不清晰,不用在意细节。
(3) 查看接口技巧
搜索关键字:
$.ajax
service.httppost
service.httpget
0x03 js加密密码字典生成
当你登录是发现密码是这样的: 7ADAB2400D8F864E3EA5F882E124FB17270ADEC2FE75F46C300242FBB0B7D487B505364016E6E555298A3EF48ADD05FB2C93757E8C7317B246366050AA071359
128位,有没有吓到你,其实不用怕,看看如何将你的明文加密成这个,页面源代码发现加密的密钥信息。
通过获取的密钥进行构造,通过get传参,然后python批量请求就可以将你手中的明文字典加密成对应的密文了。
0x04: js登录密码硬编码
如果你登录一个网站时,发现bp抓不了数据包,但是页面提示账户密码错误,那么很大可能密码是写在页面中,通过去js文件中搜索即可获取到账户密码。
其他:
-
当文件上传是通过js前端校验的,那么通过bp抓包或者禁用js即可绕过其限制;
-
当验证码是通过前端校验的,那么通过bp截断即可绕过进行暴力破解;
更多案例请参考以下文章:
-
https://www.secpulse.com/archives/35877.html
-
https://zhuanlan.zhihu.com/p/79335206
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK