您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
PHPCMSv9.6.0wap模块SQL注入漏洞修复方法
易烟2025-05-21 13:58:46phpcms教程已有4人查阅
导读调试这个漏洞的时候踩了个坑,影响的版本是php5.4以后。由于漏洞是由parse_str()函数引起的,但是这个函数在gpc开启的时候(也就是php5.4以下)会对单引号进行过滤\' 。
调试这个漏洞的时候踩了个坑,影响的版本是php5.4以后。
由于漏洞是由parse_str()函数引起的,但是这个函数在gpc开启的时候(也就是php5.4以下)会对单引号进行过滤\' 。
分析:这个漏洞要三步的过程,直接进入第三步。
根据给的poc: 可以看到应该是a_k参数出现问题,位于content目录下, down.php页面,
parse_str($a_k); 以&为分隔符,解析变量并且注册变量,并且对url进行解码 (参考:http://php.net/manual/zh/function.parse-str.php)
我们的poc是{"aid":1,"src":"&id=%27 and updatexml(1,concat(1,(user())),1)#&m=1&f=haha&modelid=2&catid=7&","filename":""}会对id,m,f,modelid,catid 进行注册。 这里也要注册后面的参数,不然走不到get_one的流程。(有次没注册$f,调试的时候直接跳出)进入get_one函数就开始对sql语句进行查询了。所以就是个注入了,是由parse_str()函数引起。
接着看怎么解码的,继续下断点。
function sys_auth($string, $operation = 'ENCODE', $key = '', $expiry = 0) 函数位于 phpcms/libs/functions/global.func.php 第384-430行好难,还是看大牛解析(http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0131548.html)看第二个请求。
代码如下:
存在注入语句的参数是 src,进入了safe_replace()函数,把常见的危险字符串过滤成空,又只进行了一次过滤,简直就是绕waf的好帮手。
设置了json_str,所以在回显中cookie有这么一段。 这个post请求中有个post的参数,userid_flash ,搜索一下他干嘛的,要存在userid,不然就不能往下执行,所以才有了第一步。
poc:
由于漏洞是由parse_str()函数引起的,但是这个函数在gpc开启的时候(也就是php5.4以下)会对单引号进行过滤\' 。
分析:这个漏洞要三步的过程,直接进入第三步。
根据给的poc: 可以看到应该是a_k参数出现问题,位于content目录下, down.php页面,
parse_str($a_k); 以&为分隔符,解析变量并且注册变量,并且对url进行解码 (参考:http://php.net/manual/zh/function.parse-str.php)
我们的poc是{"aid":1,"src":"&id=%27 and updatexml(1,concat(1,(user())),1)#&m=1&f=haha&modelid=2&catid=7&","filename":""}会对id,m,f,modelid,catid 进行注册。 这里也要注册后面的参数,不然走不到get_one的流程。(有次没注册$f,调试的时候直接跳出)进入get_one函数就开始对sql语句进行查询了。所以就是个注入了,是由parse_str()函数引起。
接着看怎么解码的,继续下断点。
function sys_auth($string, $operation = 'ENCODE', $key = '', $expiry = 0) 函数位于 phpcms/libs/functions/global.func.php 第384-430行好难,还是看大牛解析(http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0131548.html)看第二个请求。
代码如下:
存在注入语句的参数是 src,进入了safe_replace()函数,把常见的危险字符串过滤成空,又只进行了一次过滤,简直就是绕waf的好帮手。
设置了json_str,所以在回显中cookie有这么一段。 这个post请求中有个post的参数,userid_flash ,搜索一下他干嘛的,要存在userid,不然就不能往下执行,所以才有了第一步。
poc:
本文标签:
很赞哦! (0)
下一篇:phpcms首页模板替换的方法
暂无内容 |
暂无内容 |
相关文章
- discuz防止sql注入的方法
- phpcms的/preview.phpSQL注入漏洞修复方法
- phpcms v9.6.0 sql注入漏洞分析
- PHPCMS V9.6.0 SQL注入漏洞EXP使用方法
- PHPCMS提示\phpcms\modules\member\index.php用户登陆SQL注入漏
- PHPCMSV9.6.0SQL注入漏洞分析修复方法示例
- ecshop常见sql注入漏洞修复
- ecshop的sql注入漏洞修复方法实例
- ecshop的sql注入漏洞修复方法
- dedecms织梦防SQL注入防跨站提交的方法
- DedeCMS织梦投票模块插件sql注入漏洞修复教程
- dedecms的SQL注入0day漏洞修复教程
暂无内容 |
暂无内容 |
随机图文
PHPCMS都能开发什么
PHPCMS能够搭建一般企业、、校园、个人等小型网站,也适合于搭建地区门户、行业门户、收费网站等大中型网站,之所以能搭建这么多网站,是因为PHPCMS功用覆盖面广phpcmsV9升级至php7.1常见报错修复方法
最近将phpcmsV9升级至php7.1,中间踩过一些坑,这里列出来给大家参考下。1. 迁移至php7.1+mysql5.6+nginx的修改项目phpcms怎么实现banner轮播
phpcms实现轮播的方法:首先在想要加轮播图的位置加入“...”;然后根据自己的需求对css样式进行更改;最后在需要实现轮播的地方加入js代码即可。phpcms的文件uploadfile不可写怎么办
phpcms uploadfile不可写怎么办?1. 将/var/ /html/phpcms目录所属用户和组修改为apache2. 将/var/ /html/phpcms目录下所有文件权限设置644,目录权限设置为755
留言与评论 (共有 0 条评论) |