找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

861

积分

0

好友

115

主题
发表于 10 小时前 | 查看: 0| 回复: 0

这个目标站点相当经典,遇到的漏洞也颇具代表性。整个过程素材简单,运气不错,恰好让我碰上了。

依旧是一个经典的门户网站。

ASP经典门户网站首页截图

碰巧在目录扫描中发现了 web.zip 文件。

目录扫描发现web.zip文件

不用猜,这很可能就是网站的备份源码文件了。

源码文件中的admin文件夹

目前已知的信息是:后台登录页面在 admin/login.asp,并且我们拥有完整的源码文件。那么,就可以开始进行代码审计了。

ASP后台管理代码片段,显示SQL拼接逻辑

没想到,我刚随机打开一个文件,就敏锐地察觉到这似乎是存在参数拼接的 SQL注入 漏洞。

if request("act")="edit" and request.QueryString("id")<>"" then
id=request("id")
sql="select * from admin where id="& SH_Clng(request.QueryString("id"))
rs.open sql,conn,3,2
if not rs.eof then
rs("aleave")=aleave
rs("admin")=admin
If Trim(Rs("Password"))<>Trim(Password) Then
rs("password")=md5(password,32)
End If
rs.update
end if
rs.close
elseif request("act")="add" then
sql="select * from admin where admin='"&admin&"'"
rs.open sql,conn,3,2
if (rs.eof and rs.bof) then
rs.addnew
rs("aleave")=aleave
rs("admin")=admin
rs("password")=md5(password,32)
rs.update
end if
rs.close
end if
set rs=nothing
conn.close
set conn=nothing
response.redirect "admin_admin.asp"

但这肯定是后台功能,我们需要找到前台的注入点才行。于是转头去审计目录外的 ASP 文件,比如 product.aspabout.asplist.asp 等等。

前台产品列表页面代码,存在SQL拼接

随后对前台页面进行注入测试,然而,并没有成功。

SQLMap工具运行,显示版本过时及500错误

于是用浏览器直接访问测试一下。

浏览器访问显示WAF拦截页面

发现被拦截了。然后又翻了翻文件,发现整个前台的文件都存在字符拼接的SQL语句。于是全局搜索一下,看看到底拦截的代码在哪里。

在源码中搜索拦截关键词无结果

代码中没有找到拦截逻辑,那么很可能是有 WAF(Web应用防火墙)在起作用。

熊猫背对镜头的图片

手动尝试了单引号、空格、or,都被拦截了,但是 and 竟然可以通过。

浏览器地址栏显示包含`and`的测试参数

服务器返回500内部错误页面

手注还是有些费劲,于是借助AI写了个脚本来绕过过滤,然后就成功了。

SQLMap成功识别出Access数据库注入点

发现后端数据库竟然是 Microsoft Access,这对我来说比较少见。尝试 --tables 枚举表名失败了。

SQLMap尝试读取Access数据库表失败

正当我不知所措的时候,突然想到:我下载的是源码,是源码啊!那还费这么大劲搞注入干嘛,直接搜索数据库文件不就好了。

在终端中使用find命令搜索.sql文件

头顶问号的困惑猫表情包,配文“匪夷所思”

大脑思考片刻后,我恍然大悟,Access 数据库的后缀应该是 .mdb.accdb

使用find命令搜索.mdb和.accdb文件

表情夸张的模糊猫脸,配文“彻底疯狂”

继续搜索其他Access数据库格式文件

没招了?嘻嘻,逗你们呢。其实一开始我就在翻找文件,在 data 目录里就有了发现。

data目录下的BasicData.asp文件

当时看到后缀是 .asp,就直接划走了,实际上它就是一个Access数据库文件(ASP文件内嵌了数据库连接)。

开发工具识别BasicData.asp为Access数据库

找了个在线的Access数据库解析网站,直接看到了管理员账号和MD5加密的密码。

在线解析出的admin表数据

登录后台后发现,前台用了Kindeditor编辑器,没想到后台也统一用的这个编辑器组件。

后台信息添加表单,使用了Kindeditor富文本编辑器

于是让AI辅助审计了一下后台可能的RCE和文件上传漏洞。

AI代码审计工具界面,正在分析上传漏洞

结果发现,风险点都在编辑器的上传接口。AI报告说没有严格限制,可以上传ASP脚本文件。不过,自从某个AI模型版本更新后,其判断准确性一言难尽。

编辑器上传配置代码,列出允许的文件后缀

不过我发现允许列表中包含 asf 后缀,于是尝试上传ASP木马(伪装成asf文件),结果返回了500错误。

上传asf格式Webshell的HTTP请求与500错误响应

另一个非编辑器页面的附件上传接口同样返回500。该接口没有任何后缀限制,但直接上传 .asp 文件也失败了。

附件上传功能代码片段

尝试上传shell.asp文件的请求与500错误

总结与思考

这次渗透测试的过程非常典型:从信息泄露(源码备份)开始,通过代码审计发现潜在的SQL注入点,绕过WAF进行验证,最终通过解析泄露的Access数据库文件直接获取后台权限。尽管在最后一步尝试文件上传Getshell时因未知的服务器端防护(可能是IIS配置或额外安全组件)而失败,但整个链路清晰地展示了一个老旧ASP+Access架构站点的常见安全风险。

对于开发者而言,这个案例的防护启示很明确:

  1. 严禁源码备份文件可公开访问。
  2. 对所有用户输入进行严格的参数化查询或过滤,避免SQL拼接。
  3. 对上传功能进行严格的白名单验证,并在服务器端检查文件内容。
  4. 定期进行安全审计和代码审计,及时发现此类经典漏洞。

如果你对这类实战漏洞分析感兴趣,欢迎到 云栈社区安全/渗透/逆向板块与更多安全爱好者交流探讨。




上一篇:OpenAI商业模式新动向:考虑对AI辅助的药物发现等成果收入分成
下一篇:WSL Ubuntu迁移步骤详解:从旧系统到新系统的完整操作指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-26 17:27 , Processed in 0.272475 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表