国内外CMS代码审计实战分析

国内CMS代码审计实战分析 (阿样发卡网v6.0)

一、前台SQL注入

利用Seay工具,进行审计。
在这里插入图片描述
跟进ajax.php文件
在这里插入图片描述
仔细看这个代码,可以发现这个文件先取POST包中的t参数,然后把取到的参数内容带入数据库中查询if_km表中的out_trade_no ,trade_no,rel 列
在这里插入图片描述
最后再输出代码

虽然这行代码总体看来没问题的且有可能存在注入,不过我们仔细看这里可以发现程序会把取到的参数带入_IF函数中进行过滤
在这里插入图片描述
显然程序对参数进行了过滤,那我们现在看看程序会对什么值进行过滤,然后对症下药
在这里插入图片描述
ajax.php的文件开头可以看出 包含了if/common.php 所以我们把注意转移到if/common.php上
在这里插入图片描述
找到了过滤文件,继续跟进
发现过滤还挺严格的
在这里插入图片描述
既然_if过滤这么严格,那我们就回到ajax.php继续通读代码,看看能不能发现一些额外惊喜
在这里插入图片描述
$out_trade_no变量没有做任何过滤就直接带入了数据库,拿到程序测试一下
在这里插入图片描述
在这里插入图片描述
直接带进去了

二、前台修改管理密码

漏洞位置:admin/ajax.php
漏洞成因:单纯的header头判断
在这里插入图片描述
加入X-Requested-With: XMLHttpRequest 即可绕过判断
继续往下看,
漏洞位置:
在这里插入图片描述
绕过他前面的判断,这里就直接能重置密码了,复现一下试试
在这里插入图片描述
发现重置成功了,但是发现我们登陆不上去
在这里插入图片描述
怎么回事呢,我们去看看代码
在这里插入图片描述
原来我们的新密码要加上他的秘钥再MD5一下,我们直接全局查找$password_hash,找到秘钥
找到秘钥
在这里插入图片描述
生成我们的新密码
在这里插入图片描述
利用刚才的漏洞,修改密码,登陆系统
在这里插入图片描述

后台任意文件上传

漏洞位置:admin/set.php
在这里插入图片描述
只判断了$ext是不是图片类型,并且没有进行一系列的过滤然后传入到了/assets/imgs/里面,名字为logo.xx
在这里插入图片描述
上传成功,访问/assets/imgs/logo.php
在这里插入图片描述
漏洞危害
探测内网服务及内网拓扑
向内部任意主机的任意端口发送精心构造的Payload
DOS攻击(请求大文件,始终保持连接Keep-Alive Always)
攻击内网的web应用,如xss、sql注入等
利用file、dict、gopher等协议读取本地文件等

常用协议
file协议可用于查看文件
dict协议可用于刺探端口
gopher协议支持GET/POST等请求,可用于攻击内网ftp、redis、telnet、smtp等服务

国外CMS实战代码审计分析

Joomla! Core SQL注入漏洞

CVE-2018-8045
受影响版本
Joomla! Joomla! 3.5.0-3.8.5
我们看下漏洞代码
在这里插入图片描述
$categoryId未经过滤直接拼接sql语句进行查询,造成了sql注入。

但是$categoryId参数如何控制呢?

存在漏洞的文件位于\administrator\components\com_users\models\notes.php,是一个joomla的模型文件,它的控制器是\administrator\components\com_users\controllers\notes.php

我们登录joomla后台来看一下在哪里触发这个漏洞。
访问administrator/index.php?option=com_users&view=notes 即可触发该控制器。
在这里插入图片描述
在这里插入图片描述
$categoryId未经过滤直接拼接sql语句进行查询,造成了sql注入。

但是$categoryId参数如何控制呢?

存在漏洞的文件位于\administrator\components\com_users\models\notes.php,是一个joomla的模型文件,它的控制器是\administrator\components\com_users\controllers\notes.php

但是如何控制$categoryId参数呢?
如果只访问administrator/index.php?option=com_users&view=notes
只会向服务器发送一个get请求,请求中根本不包含我们想要的categoryId参数
先看下出问题的这行代码
在这里插入图片描述
因此想向它传参,一定和高级搜索之类功能的有关。

选择Search Tools选项 Select Category选项。

在这里插入图片描述
此时joomla的发包情况
在这里插入图片描述
此时我们需要的filter[category_id]参数出现在了post参数中,通过这个参数的值,即可畅通无阻的进行注入。
下面验证下这个filter[category_id]参部分可以直接传递给后台的$categoryId参数
我们修改了filter[category_id]参数内容为‘kingsguard_test’,并发包
在这里插入图片描述
后台下断点,抓取$categoryId值,可见kingsguard_test 原封不动的被传递给$categoryId参数,并拼接sql语句进行查询。
在这里插入图片描述
利用验证
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值