PHP MD5()関数バイパスで

研究は、物品は、単にそれを記録することを指摘するような単純な方法は、PHPのMD5()関数をバイパスします。
 
 
 
メインコードセグメント:
1つの     $パスワード = $ _POST [ 'パスワード' ];
2      $のSQL = "SELECT * FROM管理者のユーザー名= '管理者'とパスワード=「"。MD5$パスワード) "'"。;
3      $結果 = mysqli_query$リンク$ sqlを);
4          もしmysqli_num_rows$結果)> 0 ){
 5つの             エコー 'フラグが'。$フラグ6          }
 7          {
 8              エコー '密码错误!';
9          }

 


 
PHPのMD5()関数
 
 
MD5()関数MD5ハッシュは、文字列を計算しました。
MD5()関数は、MD5メッセージダイジェストアルゴリズムを含めて、RSAデータセキュリティを使用しています。
RFC 1321から説明 - MD5メッセージダイジェストアルゴリズム:MD5メッセージは、入力値としてアルゴリズム任意の長さの情報を消化し、表現するために128ビットの「指紋」または「メッセージダイジェスト」値へと変換入力値、およびその結果としての値に変換されます。主に設計されたデジタル署名アプリケーション用のMD5アルゴリズム;このアプリケーションでは、デジタル署名、大きなファイルは、ここでの暗号化処理により、(暗号化されますが、暗号化システムである:で[RSAなど]公開鍵圧縮前に安全な方法で秘密鍵と完了)を設定します。
ファイルのMD5ハッシュを計算するには、使用  md5_file()  関数を。
 
構文:MD5(文字列、生)
文字列:暗号化された文字列に必要な
RAW:オプションのパラメータTRUEまたはFALSE。FALSE(デフォルトでは、32文字の16進数); TRUE(元の文字16のバイナリ形式
 

 
回避策
 
暗号化された文字列のMD5()関数を使用すると、SQLインジェクション、破壊のSQL文の構造に達します。
 
一般的な文字列:ffifdyop
 
上記の例では、ffifdyop入力し、SQL文の構造は次のようになります。
 
SELECT  *  FROM管理WHEREパス=  '' または' 6 <ゴミ> '
 
MD5()関数をバイパスする効果を達成するように、
 
したがって、本研究の簡単な終わりを指摘しています。
 

おすすめ

転載: www.cnblogs.com/CubicZ/p/11374601.html