ホームページ  >  記事  >  バックエンド開発  >  CTF における一般的な PHP 脆弱性の紹介 (図による概要)

CTF における一般的な PHP 脆弱性の紹介 (図による概要)

不言
不言転載
2019-02-18 14:20:386311ブラウズ

この記事では、CTF における一般的な PHP の脆弱性 (画像とテキストの概要) を紹介します。これには一定の参考価値があります。困っている友人は参照できます。お役に立てば幸いです。 。

このような質問はよくありますが、記憶力が悪いと忘れてしまいがちなので、記憶を深めるために丁寧にまとめておきます! ! !

1. md5() の脆弱性により、PHP はハッシュ文字列を処理するときに「!=」または「==」を使用します。ハッシュ値を比較すると、 「0E」で始まるすべてのハッシュ値を 0 として解釈するため、2 つの異なるパスワードがハッシュされ、そのハッシュ値が両方とも「0E」で始まる場合、PHP ではそれらは同じとみなされ、両方とも 0 になります。

md5 処理後の 0e で始まる例をいくつか示します。
s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s 214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
実験してみましょう:
CTF における一般的な PHP 脆弱性の紹介 (図による概要)
結果。 。 。予想通り

CTF における一般的な PHP 脆弱性の紹介 (図による概要)

# したがって、md5 で暗号化された文字列が制御可能 (つまり、入力が制御可能) な場合、脆弱性が発生する可能性があります。 ! !

もちろん、さらに興味深いのは、md5 は配列を処理できないことです。以下も実験です:

CTF における一般的な PHP 脆弱性の紹介 (図による概要)
2 つの異なる配列を渡します:

CTF における一般的な PHP 脆弱性の紹介 (図による概要)

警告は出ますが、次のことがわかります。 、それでもバイパスできます (警告が不要な場合は、先頭に @ 記号を追加してください):
CTF における一般的な PHP 脆弱性の紹介 (図による概要)
ただし、配列を処理するときに何が返されるかはわかりません。試してみてください:
CTF における一般的な PHP 脆弱性の紹介 (図による概要)

var_dump():

CTF における一般的な PHP 脆弱性の紹介 (図による概要)

は空です。 ! !配列を処理する場合、NULL 値が返されることに注意してください。

md5(str)==0; には多くのバイパス方法があります。要約すると、

  1. バイパスするには 0 または 0e で始まります。

    #Array
  2. md5関数で処理後、先頭に数字が無い限り、例えば「c9f0f895fb98ab9159f51fd0297e236d」==0が成立します! ! ! 、文字列を整数に変換するために使用されます。 ! ! , 先頭に数字がない場合は0にしか変換できません! !
  3. 2.
strcmp() 関数の脆弱性。

strcmp() 関数は 2 つの文字列を比較するために使用されます。strcmp( string$ str1, string $ str2); Parameter str1 は最初の文字列、str2 は 2 番目の文字列です。 str1 が str2 より小さい場合は、 0 を返します。
等しい場合は、0 を返します (等しい場合は 0 を返す機能に注意してください)

ただし、この関数のパラメータに不正なパラメータ (オブジェクト、配列など) がある場合、エラーが報告され、0 が返されます。 ! ! (この脆弱性は 5.3 より前の php に当てはまります。このマシンで試してみましたが、修正できないことがわかりました。何が起こったのかわかりません。)
以下は、BUGKU コードで監査された質問の例です。 :

図に示すように、strcmp の脆弱性に従って、配列を渡してみます。

CTF における一般的な PHP 脆弱性の紹介 (図による概要)
配列を渡すと strcmp エラーが発生し、戻り値が返されます。 、つまりバイパスされます! ! !
strcmp() と同じ別の関数 strcasecmp() があります。strcmp() は大文字と小文字を区別しますが、strcasecmp() は区別せず、同じ方法でバイパスできます。 CTF における一般的な PHP 脆弱性の紹介 (図による概要)

以上がCTF における一般的な PHP 脆弱性の紹介 (図による概要)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。