ホームページ  >  記事  >  php教程  >  phpwind 5.01-5.3 0dayに関する解析記事

phpwind 5.01-5.3 0dayに関する解析記事

WBOY
WBOYオリジナル
2016-06-21 09:00:401055ブラウズ
Luoluo Niu が今日パッケージを発見しました。この脆弱性は素晴らしいです :)
passport_client.php の変数は、これらの判断を回避するように初期化されていません:

if(!$passport_ifopen || $passport_type != ' client'){
exit("Passport Closed(PHPWind)");
}//送信:パスポート_ifopen =1&passport_type=client bypass


if(md5($ action.$userdb .$forward.$passport_key) != $verify){
exit('Illegal request(PHPWind)');
} //内部の変数はカスタマイズできるため、sy Bypass

parse_str(StrCode($userdb,'DECODE'),$userdb); //StrCode($userdb,'DECODE') に注意してください。そのため、変数 $userdb, StrCode($userdb,'DECODE') を送信する必要があります。 it

if($action=='login'){//Submit action=login

if(!$userdb['time'] || !$userdb['username'] || !$userdb['password']){
exit("パラメータ不足(PHPWind)");
}//Data

をデコードした後、送信された $userdb にはこれらが必要です。 ($timestamp-$userdb['time']>3600){
exit('パスポートリクエストの有効期限が切れました(PHPWind)');
}//送信時間 userdb[' time'] 大きくなります
。 ...
$rt=$db->get_one("SELECT uid $sql FROM pw_members WHERE username='$userdb[username]'");
if ($rt){ // がある場合このユーザーは、次のステートメントを呼び出してパスワードなどを変更します。

$sql && $db->update("UPDATE pw_members SET $sql WHERE uid='$rt[uid] '");
$sql2 && $db->update("UPDATE pw_memberdata SET $sql2 WHERE uid='$rt[uid]'");

}else{//これがない場合、ユーザーは以下を呼び出して

$db->update("REPLACE INTO pw_members($sql1,groupid,memberid,gender,regdate,signchange) VALUES($sql2,'-1',' 8') を追加します。 ,'0','$timestamp','1')");



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。