yyladmin(SQL注入+任意文件上传)复现+审计
2024-9-21 10:54:3 Author: www.freebuf.com(查看原文) 阅读量:2 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

侵权声明

本文章中的所有内容(包括但不限于文字、图像和其他媒体)仅供教育和参考目的。如果在本文章中使用了任何受版权保护的材料,我们满怀敬意地承认该内容的版权归原作者所有。

如果您是版权持有人,并且认为您的作品被侵犯,请通过以下方式与我们联系: [[email protected]]。我们将在确认后的合理时间内采取适当措施,包括删除相关内容。

感谢您的理解与支持


yylAdmin是一个基于ThinkPHP8和Vue3极简后台管理系统,只有登录退出、权限管理、系统管理、接口文档与调试等基础功能;前后台基础框架;你可以在此基础上根据你的业务需求进行开发扩展。前后分离,简单轻量,免费开源,开箱即用。

版本

2024.9.20之前

项目地址

https://gitee.com/skyselang/yylAdmin

漏洞描述

在该版本下的该接口/admin/file.File/list存在SQL注入漏洞,该漏洞源于应用缺少对外部输入SQL语句的验证,攻击者可利用该漏洞执行非法SQL命令获取数据库敏感数据。

受影响参数

is_disable

分析

1、首先找到调用的接口函数

image

可以看到在第55行通过param获取了参数。在这之后在72行赋值给了where数组。

2、此后跟进list函数

image

可以看到在第94行处where数组给了where()函数后续又调用了count()函数

3、继续跟进count()函数

image

此函数继续调用了countWithGroup()函数并且就在下面。此时可以看到where数组在options数组中

4、继续更进buildSql()函数

image

继续跟进select()函数

image

可以看到最终在这里将数据进行了拼接形成了sql语句

5、回到count()函数,继续跟进aggregate()函数

image

继续跟进

image

可以看到形成的sql语句在query数组中

6、继续跟进value()函数

image

最终在1255行执行了sql语句形成了sql注入漏洞

复现

我这里以超级管理员为例,其实用户只要能访问文件管理就行了

1、首先找到前端接口

image

2、在burp中找到该数据包,然后发送到repeater模块

image

3、修改is_disable参数为1+union+select+sleep(3))+as+agc --即可复现

image

这比较简单因为只需要修改限制上传类型,就可以实现任意文件上传。

简单分析一下

可能分析的不全或有的地方是错误的

1、找到调用的接口函数,发现没有继续过滤直接进行了保存操作

image

2、然后跟进edit函数

image

3、继续跟进save函数

image

4、此时需要判断是否已存在数据库中,可以得知数据是已经存在只需要跟新即可于是继续跟进updateData()函数

image

红框处就是保存的逻辑后续就是执行sql语句进行保存就不跟进了

复现

1、找到修改允许上传类型的地方并添加php类型

image

2、然后找到任意可以上传文件的接口,即可删除php文件。

image

3、然后直接利用就可以了

image

SQL注入

其实该系统已经进行了预编译,只是该漏洞是拼接在预编译前所以造成了漏洞,所以修复还是预编译在拼接前并进行关键字的过滤。
不过看官方的还是更好,还是以官网为主

文件上传

漏洞原因是对限制文件上传类型的设置可以添加任意后缀。所以修复就是在设置处也对其中的类型进行过滤。
不过看官方的还是更好,还是以官网为主

众所周知当一个系统存在一个sql注入时很可能存在另一个或多个sql注入。不过我只发现了这一个。


免责声明

本博客所提供的技术知识和信息仅旨在教育和分享网络安全最佳实践,促进网络安全意识的提升。作者严禁将这些技术和信息用于任何非法或不道德的目的。

使用本博客内容而导致的任何违法行为或后果,作者不承担任何法律责任。所有读者在使用本博客的信息时,应自行承担风险,并确保遵守当地法律法规。

我们鼓励所有读者合法地使用所提供的信息和技术,致力于维护安全和负责任的网络环境。

感谢您的理解与支持。

已在FreeBuf发表 0 篇文章

本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022


文章来源: https://www.freebuf.com/vuls/411449.html
如有侵权请联系:admin#unsafe.sh