注入可能なコマンド用にいくつかの PHP アプリをテストしています。コマンドを URI/CGI エンコード形式に変換する必要があります。もっと良い方法はないかと悩んでいます。
ping を含めたい場合 (アプリが実際にインジェクションから実行されているかどうかをテストするため)、次のように変換します。
hURL -X --esc ";ping localhost -c 1" | sed -e ‘s/\\x/\%/g’
これが出力です。
%3b%20%70%69%6e%67%20%6c%6f%63%61%6c%68%6f%73%74%20%2d%63%20%31
完璧に動作します。コードが挿入され、ログはそれが期待どおりに処理されていることを示しています。
質問: 上記に変換するより良い方法はありますか? 私は物事を複雑にしすぎていると思います。