1.这题的的目标是一个基于 XDCMS 的网站系统,XDCMS 有许多漏洞,常用于渗透测试练习。
实验手册:
题目链接:https://www.ichunqiu.com/battalion?t=2&r=54399
解题链接:https://www.ichunqiu.com/vm/50679/1
根据题目,猜测存在可以获取管理员账号密码的漏洞
使用搜索引擎搜索发现,当前这个CMS存在两个SQL注入漏洞,我们接下来开始尝试利用。
2.注册会员处的 SQL 注入
这个SQL注入漏洞存是因为 /system/modules/member/index.php 中的注册函数 register_save() 过滤不严,可绕过网站限制造成 SQL 注入。
接下来访问目标站点,点击免费注册,根据提示填好各种信息。
填好参数后打开Burp Suite 工具,准备对注册信息进行抓包。
设置代理。
设置完毕后,回到注册页面,点击 注册 后,在 Burp Suite 上点击 Proxy -> Intercept -> Raw 选项卡,看到了成功抓取的注册数据包:
成功抓取到注册的数据包。
单击右键接着点击Send to Repeater。
便可在 Repeater 选项卡中看到刚才抓取的数据包,用于进行重放攻击:
到这个界面
根据网上搜索到的漏洞报告中的利用方法以及 payload:
' UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14 FROM (SELECT count(1),concat(round(rand(0)),(SELECT concat(username,0x23,password) FROM c_admin LIMIT 0,1))a FROM information_schema.tables GROUP by a)b#
将这个payload 放入请求数据的 username 参数后,单击 Go,在右侧的响应数据中即可看到报错信息中泄露的管理员账号密码:
得到管理员账号和密码为
1xdcms121#1be20cb2907edca1e4f55f375a5663f1
对密码进行解密
成功解密,得到明文密码:xdcms212
3.使用目录扫描工具扫描网站后台地址
成功扫描出后台地址
尝试登录
4.制作图片马
我们继续搜索可用来利用的漏洞,发现 /system/function/global.inc.php 存在文件包含漏洞。根据漏洞说明文档,我们可以制作一句话图片木马,再将图片马上传到服务器,利用 URL 查询字符串的 m 参数指向图片马的路径,最终触发文件包含漏洞,等待菜刀连接。
因此,我们先来制作图片马。随意找到一张图片 a.jpg(此处使用 XDCMS 的 logo ),新建含有一句话木马的文本文档 a.txt
,在命令行模式下用 copy 命令合并两个文件:
copy /b a.jpg + a.txt b.jpg
5.上传图片马
回到后台管理界面,依次点击 模块管理 -> 幻灯片管理 -> 添加幻灯,发现此处能够上传图片,在 名称 处填上任意字符,在 链接地址 处填上 http://www.test.ichunqiu,接着点击 上传,选择图片马 b.jpg:
uploadfile/image/20200403/202004030824570.jpg
根据上次图片马时的系统提示得到图片路径。
由于 /uploadfile/ 在网站根目录下,而根据漏洞说明中的源码,可知参数 m 是在 /system/function/global.inc.php 文件中被引用,文件包含的关键语句如下:
include MOD_PATH.$m."/".$c.".php"; //调用类
因此使用菜刀 添加SHELL 时,赋值给 m 的图片马路径需要先从 MOD_PATH 返回根目录,在路径前面添加 ../../,猜测向上返回两级目录后可以到达根目录,如果猜测正确即能指向图片马的路径:
接着尝试连接服务器,发现连接失败:
原因是参数 m 被引用到源码后,后面还添加了一段字符串,该字符串默认为 /index.php。可在参数 m 末尾加入空字符 %00,对源码中的 include 语句进行截断。
连接成功
在网站根目录下找到flag文件,至此目标完成。
网友评论