コマンド実行
いくつかのブログ、コマンドインジェクションは、Linuxのコマンドでフィルタと親しみやすバイパスにその可能性注入とだけ精通しているキースキムミルク
1、低
<?PHPの 場合(ISSET($ _POST [ '提出する' ])){ $ターゲットは = $ _REQUEST [ 'IP' ]; // OSを決定し、pingコマンドを実行します。 もし(stristr(php_uname( 'S')、 'Windows NTの' )){ $ CMD = もしくはshell_exec( 'pingを実行'。$ターゲット)。 エコー '<前>'。$ cmdは。 '</ PRE>' ; } 他{ $ CMD = もしくはshell_exec( '3 -Cピング'。); エコー '<前>'。$ cmdは。 '</ PRE>' ; } } ?>
コマンドセパレーターは、a改行(\ N-)、セミコロン(;)、およびロジック(&&、&)、ロジック、または(||、|)また、バッチスクリプト%1A勝利で使用
127.0.0.1;猫の/ proc /バージョン
2、媒質
<?PHPの 場合(ISSET($ _POST [ '提出する' ])){ $ターゲットは = $ _REQUEST [ 'IP' ]; // 配列(ブラックリスト)にcharactarsのいずれかを削除します。 $置換 = 配列( '&&' => ''、 ';' => '' ); $ターゲット = str_replace(array_keys($置換)、$置換、$ターゲット) // OSを決定し、pingコマンドを実行します。 (php_uname( 'S')、 'Windows NTの' )){ $ CMD = もしくはshell_exec( 'pingを実行'。$ターゲット)。 エコー '<前>'。$ cmdは。 '</ PRE>' ; } 他{ $ CMD = もしくはshell_exec( '3 -Cピング'。$ターゲット) エコー '<前>'。$ cmdは。 '</ PRE>' ; } } ?>
&&のみ、濾過し、それが論理的であってもよい(||、|)、改行(\ n)を
3、高
<?PHPの 場合(ISSET($ _POST [ '提出する' ])){ $ターゲット = $ _REQUEST [ "IP" ]; $ターゲット = にstripslashes($ターゲット)。 // スプリットへのIP 4オクテットで $オクテット = 爆発(「」$ターゲット)。 // 各オクテットが整数であるかどうかを確認 する場合((IS_NUMERIC($オクテット [0]))&&(IS_NUMERIC($オクテット [1]))&&(IS_NUMERIC($オクテット [2]))&&(IS_NUMERIC($オクテット [3]))&&(はsizeof($オクテット)== 4 )){ // すべての4つのオクテットがintのであれば戻って一緒にIPを置きます。 $ターゲット = $オクテット [0]。 ''。$オクテット [1]。 ''。$オクテット [2]。 ''。$オクテット [3 ]。 // OSを決定し、pingコマンドを実行します。 もし(stristr(php_uname( 'S')、 'Windows NTの' )){ $ CMD = もしくはshell_exec( 'pingを実行'。$ターゲット)。 エコー '<前>'。。 '</前>' ; } 他{ $ CMD = もしくはshell_exec( '3 -Cピング'。$ターゲット) エコー '<前>'。$ cmdは。 '</ PRE>' ; } } 他{ エコー '<前> ERROR:あなたは</ PRE>無効なIPを入力しました' ; } } ?>
部に入力されたIPアドレス4、各部の検出デジタルか
結果は、Baiduは、ここでコマンドインジェクションの脆弱性が存在しません
4、ツールの利用
取り混ぜるツールは、コマンドインジェクションに使用することができます。
5、保護
フィルタパラメータ
ホワイトリスト保護
コマンドのパラメータは、保護のためのホワイトリストの入力パラメータを使用するための勧告の特徴である場合
等、[AZ] [AZ] [0-9] _-限定文字可能として
ブラックリストの保護
| ;!&$> < `\これらの文字を直接ブラックリストとして
\ T \ \ R \ F \ U0000これらの文字はブラックリストフィルタ、特にヌル文字としてN必要切り捨て\ U0000(ここでは保護JVM6存在しません)
6、知識の概要
、実質的にプロセスを使用しました:
フィルタバイパス1)
かどうかは、空白文字(\複数可)を許可するかどうか、マルチラインモード修飾子(/ fooの/メートル)、マッチしたオブジェクトの最後に改行が欠落している場合(/ ^ \ dは+ $を/)を使用するには、誤った書き込みモード整合バックスラッシュ(/か\ /)。
引用符エスケープ(引用符で、入力データのソースコードを、それが実行できない)、回避モードおおよそ:脱出のための注釈引用符に続く引用符、または\とエスケープ効果を閉じます
2)コマンドインジェクション
Linuxのために調理されたオプションのコマンドインジェクション、私の親愛なる友人のTQL、
参考リンク: