梦想cms1.4审计


梦想cms1.4审计

一个简单的mvc,直接去看配置文件和控制器,配置文件中无waf:
在这里插入图片描述
先来后台的,后台的都比较容易

后台sql注入1

BookAction.class.php文件:
在这里插入图片描述
有传参,跟进下getReply方法:
在这里插入图片描述

进行了字符串拼接操作,并且返回调用了父类的selectModel方法,跟进下:
在这里插入图片描述

又调用了父类的selectDB方法,跟进下:

在这里插入图片描述
进行了sql查询并且我们可以控制 $sqlStr变量,打印下sql语句:
在这里插入图片描述
闭合构造下payload:
在这里插入图片描述

前台sql注入

TagsAction.class.php文件:

在这里插入图片描述

自定义了一个p方法来提交参数,跟进p方法看下:
在这里插入图片描述
可以知道p(2,1,1)是通过get方法提交参数,且开启了过滤。我们跟进filter_sql方法看下,有过滤:
在这里插入图片描述

我们接着回到TagsAction.class.php接续走,进入delHtml方法看下:
在这里插入图片描述
去除尖标签。那么问题来了我们是不是可以通过sel<>ect这样的方式来绕过呢,当然可以。因为他是先验证,在去除,最后再拼接执行。
我们再回去接着走:

在这里插入图片描述
好家伙,对参数进行了urldecode,并且也是在执行前验证后,经常打ctf的师傅应该了解了。那么基本上他所有的过滤都无效了,包括addslashes函数。接着走进入getNameData方法:
在这里插入图片描述

简单拼接下字符串而已,再进入oneModel:
在这里插入图片描述
在进入oneDB:
在这里插入图片描述
进行了sql拼接查询,并且我们可以控制We参数。
随便打印下先:
在这里插入图片描述
看见了sql语句,我们闭合拼接payload并二次URL编码:
在这里插入图片描述
注入成功

前台sql注入

/index/BookAction.class.php文件:
在这里插入图片描述
进入add方法:
在这里插入图片描述
进入addModel方法:
在这里插入图片描述

进入addModel:
在这里插入图片描述
ok,我们构造payload:
在这里插入图片描述
注入成功:
在这里插入图片描述
构造payload时ischeck参数是为了可以在留言处显示,setbook参数一定要有的,这样才可以进到add方法,其他的随意,一个insert语句挺多姿势的。


文章作者: wa1ki0g
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 wa1ki0g !
  目录