记录某一天安服仔的漏洞挖掘过程

本文记录了一名安全工程师在不提供测试账号的情况下,通过端口扫描、目录遍历、Webpack代码解析,发现并利用漏洞的过程,包括未授权访问、信息泄露、SQL注入和文件下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言


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

干活


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

图片

访问目录提示 404

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

图片

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

图片

访问wap目录,需要在微信打开:

图片

在微信打开,提示要关注企业号,没找到企业号。

图片

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

图片

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

图片

webpack 还原代码

方法一:

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

需要编译,我编译失败了

方法二:

# 安装reverse-sourcemap
npm install --global reverse-sourcemap

# 下载 *.js.map(右键查看源代码,找到js,在js后面加上.map)
curl -O https://127.0.0.1/*.js.map

# 使用reverse-sourcemap
reverse-sourcemap --output-dir ./test xxx.js.map

# 得到js

图片

未授权访问

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

查看JS,URL,参数,请求方式 都写明了,跟着构造就对了。

图片

发现这是通行码的二维码base64编码的图片,可以通过这个通行码到门岗处领取访客卡。

图片

创建一个html,使用img标签成功得到二维码。

图片

图片

信息泄露

这是一个搜索用户的接口

图片

成功获取到 3568 条员工信息

图片

SQL注入

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

图片

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

图片

图片

第二个注入

图片

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

ProcLnstID=1/1 返回正常

ProcLnstID=1/0 返回错误

图片

图片

任意文件下载

发现文件上传的 JS

// 上传
const upload = function (file) {
    let url = '/xxxxxxxxxx/loadFile'
    let postData = new FormData() // 创建form对象
    postData.append('file', file, file.name) // 通过append向form对象添加数据
    let config = {
        headers: { 'Content-Type': 'multipart/form-data' }
    }
    
    return ajax.post(url, postData, config)
}

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

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

图片

发现图片查看的 JS

图片

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

图片

总结


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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值