52

利用 js 文件进行渗透

 4 years ago
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.
neoserver,ios ssh client

点击上方“ 蓝字 ”关注 公众号 获取最新信息!

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

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

0x01 node js站点

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

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

JbmaYb3.jpg!web

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

bQn2a2Y.png!web

(2) 查看重要js文件

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

JbmaYb3.jpg!web

(3)  查看js配置文件

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

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

2mMVBr7.jpg!web

BbuIVbF.jpg!web

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

6vMJBni.jpg!web

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

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

fMruuaN.jpg!web

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

(5) 构造请求

2MFBRrF.png!web

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

AjiqQbv.png!web

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

Rf2Ybqa.png!web

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

fEzAfam.png!web

获取管理员敏感信息

MRvMNjE.png!web

uiaaMj3.png!web

继续尝试别的接口

AjMvmeZ.jpg!web

发现功能树

YJ363uz.png!web

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

7FnIbiE.png!web

(6)  查找接口技巧

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

搜索关键字:

method:"get"

http.get("

method:"post"

http.post("

0x02  Ajax通用接口写法

(1) 查看重要接口

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

N73aYnu.png!web

(2) 构造请求

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

zaaya2u.jpg!web

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

qmEZzyE.png!web

发现敏感信息,如图:

7z6zQz2.jpg!web

还有这种接口。

对应构造请求,如图:

qyYnAnu.png!web

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

2qaiaiB.png!web

(3) 查看接口技巧

搜索关键字:

$.ajax

service.httppost

service.httpget

0x03  js加密密码字典生成

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

vu6nua7.png!web

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

mAfUVvZ.png!web

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

vmIVjqM.jpg!web

0x04: js登录密码硬编码

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

其他:

  1. 当文件上传是通过js前端校验的,那么通过bp抓包或者禁用js即可绕过其限制;

  2. 当验证码是通过前端校验的,那么通过bp截断即可绕过进行暴力破解;

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

  • https://www.secpulse.com/archives/35877.html

  • https://zhuanlan.zhihu.com/p/79335206

VzmANna.png!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK