1. 首页
  2. 渗透测试

利用js文件进行渗透

【推荐学习】暗月渗透测试培训 十多年渗透经验,体系化培训渗透测试 、高效学习渗透测试,欢迎添加微信好友aptimeok 咨询。

本文作者:eth10(贝塔安全实验室-核心成员)

当我们访问的站点只是一个简单的登录页面时,我们应充分利用涉及到的JavaScript脚本函数或文件。

0x01 node js站点

(1) 如何判断是JS开发的站

查看登录页面的页面源代码是如下图时,那么可以简单判断本站是一个纯JS开发的站。

利用js文件进行渗透

另外可以通过cookie来简单判断,如cookie中有connect.sid这个键,如图所示:

利用js文件进行渗透

(2) 查看重要js文件

查看重要文件,一是寻找配置文件,二是查看app.xxx.js文件。

利用js文件进行渗透

利用js文件进行渗透
(3) 查看js配置文件

通过页面源码可以看到是否存在有js配置文件,如图所示:

利用js文件进行渗透

通过逐个访问js配置文件,可以查看到很多敏感信息,如图:

利用js文件进行渗透

利用js文件进行渗透

通过获取的敏感信息,有时可以直接绕过登录进入到系统中,如图:

利用js文件进行渗透

(4) 查看app.xxx.js文件

app.xxx.js文件是系统主文件,里面可以查看到很多接口,如图:

利用js文件进行渗透

通过获取的接口信息对应构造请求,如请求方法,header,content-type等。

(5) 构造请求

利用js文件进行渗透

访问发现缺少必要参数,继续补充参数

利用js文件进行渗透

最终可直接未授权访问到敏感信息,如图:

利用js文件进行渗透

对于month格式,app.xxx.js中也有对应接口,如下图:

利用js文件进行渗透

获取管理员敏感信息
利用js文件进行渗透

利用js文件进行渗透

继续尝试别的接口

利用js文件进行渗透

发现功能树

利用js文件进行渗透

尝试功能树中的接口,可以直接获取到管理员加密hash密码,如图:

利用js文件进行渗透

(6) 查找接口技巧

这里提供一个简单的方式,直接在浏览器中Ctrl + F进行下列关键字搜索,对于命中的会有颜色标出。也可以使用python进行页面解析一次性提取等。

搜索关键字:

method:”get”
http.get(”
method:”post”
http.post(“

0x02 Ajax通用接口写法

(1) 查看重要接口

直接查看源码中的script函数,如果发现$.ajax,那么恭喜你找到了部分接口,可能存在未授权访问。

利用js文件进行渗透

(2) 构造请求

同样通过获取的接口进行对应构造。

利用js文件进行渗透

没什么用,本来就是公开的接口,换一个。

利用js文件进行渗透

发现敏感信息,如图:

利用js文件进行渗透

还有这种接口。
利用js文件进行渗透

对应构造请求,如图:

利用js文件进行渗透

获取账户密码等敏感信息,之前留的图,有点不清晰,不用在意细节。

利用js文件进行渗透

(3) 查看接口技巧
搜索关键字:
$.ajax
service.httppost
service.httpget

0x03 js加密密码字典生成

当你登录是发现密码是这样的:7ADAB2400D8F864E3EA5F882E124FB17270ADEC2FE75F46C300242FBB0B7D487B505364016E6E555298A3EF48ADD05FB2C93757E8C7317B246366050AA071359

利用js文件进行渗透

128位,有没有吓到你,其实不用怕,看看如何将你的明文加密成这个,页面源代码发现加密的密钥信息。

利用js文件进行渗透

通过获取的密钥进行构造,通过get传参,然后python批量请求就可以将你手中的明文字典加密成对应的密文了。

利用js文件进行渗透

0x04:js登录密码硬编码

如果你登录一个网站时,发现bp抓不了数据包,但是页面提示账户密码错误,那么很大可能密码是写在页面中,通过去js文件中搜索即可获取到账户密码。

利用js文件进行渗透

其他:
  1. 当文件上传是通过js前端校验的,那么通过bp抓包或者禁用js即可绕过其限制;
  2. 当验证码是通过前端校验的,那么通过bp截断即可绕过进行暴力破解;

更多案例请参考以下文章:

  • https://www.secpulse.com/archives/35877.html
  • https://zhuanlan.zhihu.com/p/79335206

原创文章,作者:mOon,如若转载,请注明出处:https://www.moonsec.com/8749.html

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息