2

WHMCSは、テンプレートシステムにSmartyを使用していますが、優れたテンプレートシステムには、{php}タグという欠陥があります。これらのタグを使用すると、PHPコードをテンプレート内で直接解釈できます。この場合、新しいチケットが作成されたときにチケットシステムを介して解釈できます。このハッキングはWHMCSシステムで常に発生します。構成のテキストブロックオプションを使用して、WHMCSのコードをブロックしてみてください。しかし、ほとんどの場合、これは機能しません。

WHMCSがチケットを受け入れ、ハッカーがチケットメッセージに次のように追加するとどうなりますか。

{php}eval(base64_decode(encoded message));{\php}

だからsmartyはその{php}部分を見て、すぐにPHPにそのコマンドを実行させましょう。そのため、最初にbase64でエンコードされたPHPをデコードします。これにより、ハッカーが実行しようとしているPHP関数/スクリプトが表示されます。

次に、evalが引き継ぎ、実際にPHPコードを評価して、サーバー側で実行します。

多くのハッカーはこの方法で侵入し、WHMCSで機能することがわかっているコードを実行し、データベース情報を取得してファイルにエコーします。次に、ブラウザのURLからこのファイルを取得し、必要な情報を取得します。

これは一部のWHMCSインストールでのみ機能しますが、WHMCSによると、最新バージョンではこれが許可されておらず、Smartyでは{php}が無効になっています。ハッカーは、それとevalそのコードを回避する方法を見つけることがあります。

4

2 に答える 2

2

これを有効/無効にするフラグが Smarty の設定にあり、デフォルトではオフになっているはずです。

{php}WHMCSでタグの使用が必要な場合、[できるだけ丁寧に言うと]信じられないほど遅れており、課金やその他のソフトウェアのビジネスから撤退する必要があります.

編集: うん、ここの docs で。「ほら見て!この巨大なセキュリティホールをあなただけに開けました!」

テンプレート ファイルを調べて、これらの{php}タグの使用箇所を見つけることをお勧めします。これは、セキュリティのこの大きな穴を塞ぐことによって失われる機能を示しているためです。

于 2012-11-22T16:28:46.150 に答える
1

これは実際には、mod_security を使用して修正する非常に単純なハックです。まず、mod_security 構成ファイルの場所を見つけます。これはすべて mod_security と OS のインストールに依存しますが、通常はmodsec.conformodsec2.confと呼ばれますsecurity.confが、まれにしか呼び出されません。

locateほとんどの Linux システムにインストールされている場合は、コマンドを使用して見つけることができます。

sudo updatedb
locate modsec.conf
or
locate modsec2.conf

ディレクトリlocateに移動して を実行する必要がない場合、これには時間がかかりますが、パネルが だけでなく奇妙な場所にインストールすることもあります。/find/etc

cd /
find . -type f -iname 'modsec*.conf'

どちらの方法でも構成ファイルを見つけることができます。見つかったら、お気に入りのエディターを使用してファイルを編集し、一番下に移動して次を追加します。

SecRuleEngine On    
SecRule ARGS {php} "severity:4,log,deny"
SecRule ARGS eval "severity:4,log,deny"
SecRule ARGS base64_decode "severity:4,log,deny"

GET基本的に、とで引数をフィルタリングするように指示しますPOST。以上です。Apache を再起動します。

CentOS:
service httpd restart

Ubuntu:
service apache2 restart

これにより、スクリプトでこれらのコマンドを使用できなくなると考えているかもしれませんが、まったくそうではありません。それは、これらの単語がGETまたはに送信されるのをブロックするだけPOSTです。誰かがしようとすると、Not Acceptableエラーが発生し、まったく機能しません。

これにより、ファイアウォールまたは WHMCS と潜在的な顧客から多数の IP をブロックする必要がなくなります。

于 2012-11-22T13:59:05.083 に答える