[TOC]

1.前言

填上上一篇文章sdcms v1.9 后台getshell里的坑,好不容易啊

刚挖出来的0day,今天是12.30号,也是我2019年最后一篇文章了,没有下集预告了,也不给自己挖坑了。明年的事明年再说,祝大家新年快乐……

这套cms的注入点看完后会发现很简单,傻子都会……主要就是花了很多时候去找到了这个地方

审过这套cms的会发现,他的过滤是用了什么sqlcheck啥的来实现的,我开始审的时候就被这函数给唬住了,,其实,人不要自己难为自己,非得去和这个过滤函数来较劲来想办法来绕过,何必呢

2.前台无限制sql注入

2.1 漏洞发现

在payment/wechat/notify.php第7行开始:

主要关注点:
第7行的$xml = file_get_contents("php://input");
第10行的$result = WxPayResults::Init($xml);
第20行的$out_trade_no = $result["out_trade_no"];
第28行的$query="SELECT * FROM cms_order WHERE ordernum='$out_trade_no' and state='0'";

看他这架势,感觉应该是解析传入的xml格式的数据,然后带到数据库执行

这个时候,我个人的想法是不要傻不啦叽的去跟这个WxPayResults::Init,直接黑盒测一下关键字有没有被过滤不就完了吗(要是有师傅就是想跟一下,然后发现了xxe,就当我没说,我确实也没看这个init方法)

我在第10行后面直接加入了print_r($result);exit;
测试过程如下图:


第一个图,,说明了啥也没过滤……但是并没有out_trade_no,只是个0
所以我就寻思再套一层就行了,就是第二个图了,这就有$result["out_trade_no"]了

这就一个很明显的注入点了

点击收藏 | 1 关注 | 1
登录 后跟帖