一.起
是最近在实战中遇到的一个webvpn系统,有不少高校在运用,但是登录进来后发现简直没有公开任何内网资产,都是国内外的期刊或者公共图书馆资源,于是想着能不能经过webvpn排查出更多内网中的资产面,于是便有了这篇文章。
二.承
以前遇到的一些vpn系统,在前台就有快速跳转的功用
点击访问后,url地址传给效劳器,由效劳器端停止加密,随后运用302重定向到加密后的地址:
假如我们要经过webvpn对目的内网中的http效劳停止爆破的话,就能够经过,写脚本,调用上面的加密接口,取得响应包中的Location字段来取得加密地址,判别该地址能否胜利访问的方式停止爆破。
但是这次遇到的webvpn系统却没有提供前台输入url地址直接跳转的功用,只能访问导航中给出的一些等公共资源
而且点击跳转后有没有看到效劳器加密解密的过程,估量是在前端完成的url加密
还是先看一下网站构造,发现援用了aes-js.js文件,盲猜运用了aes加密。
由于该系统没有运用webpack打包,js也没有停止混杂或加密,所以给我们的调试工作带来了不少便当。
普通正常状况下遇到混杂的js代码,我都会先用工具搜索一下字符串,假如运气好可能一些密钥key就直接硬编码在了js里
但是这次没这么容易扫到什么敏感信息,那还是直接上F12大法吧
搜索encrypt字样,定位到portal.js文件,能够确认系统的加密是运用的aes-js库,而且定义AES加密形式是cfb
但是没有发现关键的key和iv,那就先找找key
原来是经过api获取的
经过burp抓包也得以考证,如今获取到了key和iv,我们再来认真剖析下加密算法详细是如何完成的
text是待加密的明文参数,由于aes加密中请求明文的字节长度是16位的倍数,所以先运用textRightAppend()办法判别text字节长度,决议需不需求追加0来填充,然后将明文、key和iv运用toBytes()办法转换成utf-8编码的byte数组,new了一个aesCfb对象,运用上述的key和iv停止cfb形式的aes加密,由于没有声明填充形式,我们猜想是运用的默许的PKCS5Padding,又由于给定的密钥是16位,所以数据块应是128,最后将加密密文先转成十六进制字符串再slice一下,即只截取明文字符串两倍长度的密文字符串,和转成十六进制的iv拼接好,就构成了最终的密文。
晓得了加密算法,我们再搜索encrypt字样看看哪里调用了加密算法
经过函数名encryptUrl能够大约猜到是对url停止加密的函数
分离console调试的结果,大约能够得知这样一个加密过程:首先生成协议名-端口,假如是https则不需求加上端口号,再得到encrypt()办法加密的主机地址,最后保存原有的url途径和query参数。
我们继续搜索encryptUrl字样找到调用了该办法的go函数
不难看出这个函数主要是用于完成跳转的,关于传入的url地址,分别用parseProtocol和parseHost办法别离出没有冒号双斜杠的协议名和主机地址,假如主机地址parse为空或失败的话,跳转到百度搜索,假如是http、https、ssh这些协议的话会先记载到历史,然后再跳转。
三.转
大约逻辑理分明了,我们先考证一下:
将“www.baidu.com”停止aes加密后得到“e7e056d2253161546b468aa395364056”,截取长度26,即“e7e056d2253161546b468aa395”
将iv string转hex后的结果“77726476706E69737468656265737421”
两者拼接 = “77726476706E69737468656265737421e7e056d2253161546b468aa395”
和控制台调试的结果分歧,考证胜利,证明我们的剖析没有问题。
四.合
最后要做的就是写个脚本停止爆破了
五.后话
后来对api停止深一步测试的时分发现,其实该系统还是配置了快速跳转的功用的,不过管理员默许关闭了,我们只需求修正一下响应包就能够胜利运用这个功用,点击跳转后实质上还是调用之前剖析的go()办法。
其实相似爆破还能够写油猴脚本,直接调用go()办法,会省下很多代码,但是脚本的优势也是很明显的,我们能够运用多线程,依据timeout和Location字段等方式判别目的能否可达。
感谢您的来访,获取更多精彩文章请收藏本站。
![](https://www.gyzsq.com/wp-content/uploads/2022/07/9259adea4619.gif)
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
![头像](/wp-content/themes/zibll/img/avatar-default.png)
- 最新
- 最热
查看全部没有评论内容