技术社区
安全培训
技术社群
积分商城
先知平台
漏洞库
历史记录
清空历史记录
相关的动态
相关的文章
相关的用户
相关的圈子
相关的话题
注册
登录
从文件写入sql语句到getshell
Werqy3
漏洞分析
257浏览 · 2025-03-25 06:45
返回文档
环境搭建
源码下载地址:
https://github.com/rainrocka/xinhu
下载后解压到本地网站根目录下,配置好数据库,然后安装即可
图片加载失败
图片加载失败
默认密码是admin/123456,登录进去得更改一次密码
路由分析
这里用get方式会接收m,d,a,ajaxbool参数
●
rock->jm->gettoken获取。当ajaxbool为false时,是对xxxAction.php的内容访问,当ajaxbool为true时,是对xxxAjax.php的内容进行访问
●
a, $d:分别代表php文件名(不含Action)、动作名(action)、目录名(webadmin下的子目录),默认值分别为index,default、空字符串。
举例:index.php?a=deluser&m=imgroup&ajaxbool=true&gid=38&sid=1
●
$m:user,表示请求的是webadmin下的imgroup 目录。
●
$a:list,表示请求的方法是 deluser。
●
ajaxbool:true,表示这是一个 AJAX 请求
图片加载失败
漏洞分析
这里找到webmain/main/flow/flowAction.php文件
createtxt函数是一个文件写入方法
图片加载失败
漏洞点在这
图片加载失败
发现这里调用会写入 php 中
要是我们能控制
$modenum
或是
$rs['name']
的内容就可以 getshell,不过
$modenum
同时也控制了文件名所以我们只能通过控制
$rs['name']
来 getshell
跟进一下$rs数组
图片加载失败
这里发现
$rs
数组是由
flow_set
数据库获取到的
图片加载失败
如果我们可以控制name,然后把前面和后面注释掉,不就可以写马了吗?
常规思路我们只要寻找有插入
flow_set
表的方法即可
在webmain/main/flowview/flowviewAction.php文件里面的createmodeAction方法就存在
但是xssrepstr方法对特殊字符做了处理 ,所以不行,那我们只能再找找有没有可以执行 SQL 语句且传参会不进行过滤的点
在webmain/system/beifen/beifenAction.php文件下的huifdatanewAjax方法中存在sql查询
在该方法中通过处理传入的
sid
,获取 table 名,如果 table 名不在数据库所有表名中时,会获取某个目录下
$sid
名的文件内容作为数组并取得
createsql
的内容进行 sql 语句执行。
那么就是说如果
sid
可控文件内容,同时
sid
不在表内那么我们就能构造修改
flow_set
数据的 sql,而且目录
folder
也是可控的,我们找找有没有方法可以写入文件。
在用上面方法寻找文件写入的方法是我们发现好多文件名都是带了随机数,这不太好控制其位置,所以我们要找一个文件名不带随机数的写入点
这里有webmain/flow/flowopt/flowoptAction.php文件中的savetopdfAjax方法
首先是根据
imgbase64
上传一个
abc.png
文件,其次是一个 pdf 文件,因为默认没这个插件所以实际发包会报错,但不影响
abc.png
上传操作的执行。
于是构造文件内容的 poc 为
第一层数组的键为文件名,为得是符合上面方法中
$dataarr= $data[$tab]
获取到我们后面数组
$tab
其实就是传入的文件名参数。第二层数组就是实际执行的 SQL 语句,其实 id 值是默认数据库中最后一行数据的 id 值。
此方法上传的文件位置为
upload/logs/2025-03/abc.png
漏洞复现
复现流程:
1
savetopdfAjax
上传内容为恶意 sql 语句的图片。
2
请求接口触发图片内容中的恶意 SQL 语句
3
将更新数据表后带有 payload 的 name 值写入到 php 文件中,成功实现 getshell。
首先上传一个带sql语句的图片
图片加载失败
访问发现上传成功
图片加载失败
新插入一条数据才能生成恶意的 php 文件,我们用之前找到的插入
flow_set
数据的接口进行插入
图片加载失败
通过数据表可以看到成功插入
根据
id
值重新生成
abc.png
的内容,然后进行恶意 sql 更新
图片加载失败
可以看到已经成功修改了数据表中的内容
我们需要触发
php
文件的写入
找到webmain/flow/input/mode_zzf08rneAction.php文件,发现成功写入
图片加载失败
访问即可命令执行
图片加载失败
0
人收藏
0
人喜欢
转载
分享
0
条评论
某人
表情
可输入
255
字
评论
没有评论
发布投稿
热门文章
1
飞塔防火墙漏洞深度利用及调试环境搭建
2
Linux Shellcode开发(Stager & Reverse Shell)
3
Windows Shellcode开发(x64 stager)
4
Fuzz挖掘sudo提权漏洞:一次堆溢出如何逆向分析出提权思路
5
1.6K主机全域沦陷实录:从单点突破到域控接管的终极横向渗透链
近期热点
一周
月份
季度
1
飞塔防火墙漏洞深度利用及调试环境搭建
2
Linux Shellcode开发(Stager & Reverse Shell)
3
Windows Shellcode开发(x64 stager)
4
Fuzz挖掘sudo提权漏洞:一次堆溢出如何逆向分析出提权思路
5
1.6K主机全域沦陷实录:从单点突破到域控接管的终极横向渗透链
暂无相关信息
暂无相关信息
优秀作者
1
一天
贡献值:18800
2
T0daySeeker
贡献值:18700
3
1174735059082055
贡献值:15000
4
Yale
贡献值:14000
5
1674701160110592
贡献值:13000
6
LeeH
贡献值:10000
7
MeteorKai
贡献值:9000
8
熊猫正正
贡献值:8000
9
lufei
贡献值:8000
10
Bu0uCat
贡献值:8000
目录
环境搭建
路由分析
漏洞分析
漏洞复现
转载
标题
作者:
你好
http://www.a.com/asdsabdas
文章
转载
自
复制到剪贴板
没有评论