XDCMS V1 代码审计之旅

哈哈哈,那个菜逼回来了,今天给大家讲讲最近审的一个CMS,大佬勿喷

 

前奏

俗话说的好:“工欲善其事,必先利其器”,下面我理了一下这次审计的思路

 

1:查看目录结构,了解大体的框架(主要是为了查看是否有框架加入,如:TP、WeiPHP等)

 

2:查看引入文件,找到重要文件,如过滤函数、变量集中定义文件等

 

3:访问特定功能点,进行特定代码审计,也就是说一个功能点看一段代码(这里如果出现了过滤函数,基本上可以在2中找到)

 

审计之旅

先打开首页看看,看到有登陆框和注册框,那就先从注册框开始审计

注册框SQL注入

打开注册框界面

 

现在的问题是怎么找到对应的代码,这里看到URL中有member和register,使用Seay全局搜索

观察发现,m参数对应的值应该是文件夹,f参数对应的值就是函数了

 

进入member目录的index.php看看,果然存在register()函数

 

再往下看看,发现register_save()函数通过safe_html()函数过滤以后,直接将数据插入到数据库中

 

safe_html()正是上面从引入文件中找到的过滤函数文件中定义的一个函数,仔细观察发现,这里可以用大小写或者双写进行绕过

 

接下来验证一下,在注册框的用户名中加入',看结果如何

 

芜湖,报错了,直接用payload打它,嘿嘿嘿

payload:'or updatexml(1,concat(0x7e,(selEct concat(username,password) frOm c_admin),0x7e),1)#

 

登录框任意URL跳转

注册过后,就要进行登录了,先进入登陆框看看,观察到URL中带有gourl参数,可能有跳转

 

去看看对应的源码,发现这里接收了gourl参数后,判断是否有用户后,没有进行参数过滤,直接跳转gourl对应的值

 

那么这里我将gourl值改为http://www.baidu.com,然后登录,看是否跳转

 

普通用户登录界面Cookie注入

用刚才注册的用户登录后,进行漏洞挖掘,观察到这里有个收件箱,点进去看看功能

 

有收件箱、发件箱、写信息三个功能

 

查看收件箱功能相关代码,发现这里COOKIE的member_user参数,也是只经过safe_html函数过滤,所以可以直接注入

 

将包保存为txt文件,用sqlmap跑

 

普通用户登录界面存储XSS

点击资料管理,观察姓名处,看到姓名的值是直接插在value属性值中

 

查看源代码,芜湖,发现没有进行过滤,那就直接插啊

 

payload:"><script>alert(1)</script>

 

其他的功能点,要么不能用,要么洞都是跟上面一样,普通用户登录界面就到这了

 

后台登录界面文件上传+文件包含=Getshell

登录后台后,找到上传点

 

查看相关代码,发现是白名单机制,所以如果想要Getshell,需要配合文件包含或者解析漏洞

 

Seay全局搜索include,寻找文件包含漏洞

 

打开/api/index.php,查看代码,芜湖,没有进行过滤,直接调用,舒服了(这里默认后缀为.php)

 

在同名目录下创建phpinfo.php,访问http://127.0.0.1/api/index.php?c=phpinfo,进行测试,OK!!!

 

首先上传图片马

 

菜刀直接配合%00截断,进行getshell

http://127.0.0.1/index.php?c=../uploadfile/image/20201204/202012041021240.jpg%00

 

小结

这个CMS审计就告一段落了(PS:主要被大佬们都日穿了,呜呜呜)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值