美文网首页CTF-Web安全WEB渗透与网络安全信息安全
渗透测试入门 —— 你是会员吗?

渗透测试入门 —— 你是会员吗?

作者: LonelySong | 来源:发表于2020-04-04 11:17 被阅读0次

    1.这题的的目标是一个基于 XDCMS 的网站系统,XDCMS 有许多漏洞,常用于渗透测试练习。

    实验手册:

    image.png
    题目链接: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文件,至此目标完成。

    相关文章

      网友评论

        本文标题:渗透测试入门 —— 你是会员吗?

        本文链接:https://www.haomeiwen.com/subject/prwkphtx.html