0

不明なコードによって注入された私の php ホスティング。ファイル全体を投稿するわけではありませんが、

$x0d = "b\x61se\x364\137dec\x6f\144\145";

PHP は、デコードする関数を使用せずに、このコード行をどのように処理できますか。

\x61 = a 、\x61 とは何ですか? Web サーバーはこの文字をどのように理解できますか? HEX / OCTエンコーディングを試してみても、\x61を提供できません

コード内に例を示します。以下のコードが実行されますsha1

$a = "s\x68\x61\061"; 
echo $a("hello");

※ファイル全体に機能はありませんeval()

4

1 に答える 1

1

わかった。この投稿を参照した後、PHP の文字列型であることがわかりました。

http://www.php.net/language.types.string

二重引用符で囲まれたエスケープ文字

[0-7]{1,3} : 正規表現に一致する一連の文字は、8 進表記の文字です

\x[0-9A-Fa-f]{1,2} : 正規表現に一致する文字列は 16 進数表記の文字です

16 進数はここから参照できます: http://www.ascii.cl/

于 2013-08-23T06:01:00.037 に答える