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
そのコードを回避する方法を見つけることがあります。