首发于先知社区:https://xz.aliyun.com/t/9300

前言

作为一个拿着几 K 工资的安服仔,某一天上级给了一个网站需要挖挖洞。客户不愿意提供测试账号,通过其他位置拿到账号规则,然后进行爆破的时候把账号都锁了,因此还被投诉了。记录一下一天的漏洞挖掘过程,过程有点啰嗦。

干活

拿到目标,通常先扫一下端口

1.png

访问目录提示 404

2.png

三大搜索引擎和github都没找到相关网站的信息,这个时候只能先下扫目录了
3.png

发现 net 版本的 ueditor ,还以为能 shell 了,访问发现报错了,问了一下大佬说可能需要登录。看到了网站的绝对路径,二话不说先写个低危报告。
4.png

访问 wap 目录,需要在微信打开
5.png
在微信打开,提示要关注企业号,没找到企业号。
6.png

访问目录的时候有一个跳转过程,在还没跳转之前先暂停。发现使用了 webpack

F12 —> 源代码 发现可以看到 webpack:// ,可以直接在这看 JS ,也可以还原出来在本地看
7.png

webpack 还原代码

方法一:

使用谷歌插件可以直接下载代码:https://github.com/SunHuawei/SourceDetector

需要编译,我编译失败了

方法二:

  1. # 安装 reverse-sourcemap
  2. npm install --global reverse-sourcemap
  3. # 下载 *.js.map (右键查看源代码,找到 js ,在 js 后面加上 .map)
  4. curl -O https://127.0.0.1/*.js.map
  5. # 使用 reverse-sourcemap
  6. reverse-sourcemap --output-dir ./test xxx.js.map
  7. # 得到 JS

8.png

未授权访问

API 要未授权才能捡到洞,要验证感觉没什么戏了。

查看 JS ,URL,参数,请求方式 都写明了,跟着构造就对了
9.png
发现这是通行码的二维码 bas64 编码的图片,可以通过这个通行码到门岗处领取访客卡

10.png

创建一个 html ,使用 img 标签成功得到二维码
11.png
12.png

信息泄露

这是一个搜索用户的接口
13.png

成功获取到 3568 条员工信息
13.png

SQL注入

通过构造请求,发现 area 参数存在SQL注入
14.png

手工把几个参数都尝试一遍,没 waf 没什么难度。看长度证明漏洞
15.png

16.png

第二个注入

17.png

通过手工把上面的参数都测试一遍,一开始没发现什么。当在 ProcLnstID 使用运算符的时候发现漏洞

ProcLnstID=1/1 返回正常

ProcLnstID=1/0 返回错误
18.png
19.png

任意文件下载

发现文件上传的 JS
20.png

构造请求,发现只能上传图片,又一次与getshell无缘

burpsuite 右键 点击 change body encoding ,从post 转成 form-data ,在 Content-Dispostition: 加上 name=”file” 就可以成功上传了

21.png

发现图片查看的 JS
22.png

一开始先测试一下 SSRF ,报错了。然后尝试读取文件,成功读取
23.png

总结


大概流程:拿到目标 —> 扫端口 —> 扫目录 —> 发现webpack —> 查看 JS —> 构造请求 —> 捡到漏洞

没什么技术含量,再会….