低いです
利用:
; LS ../../
ソース分析:
<?PHP IF(ISSET($ _POST [ '送信' ])) { // ターゲットに対応するコピーIP値 $ターゲット = $ _REQUEST [ 'IP' ]; IF(stristr(php_uname( 'S') ' NT、Windowsの)) { // それが直接のpingを巻き取っている場合は $ cmdを = もしくはshell_exec( 'ピングの'。$ターゲット); エコー '' <前> $ CMD。 '</前>' ; } 他 { // のLinuxのpingのデフォルトの3つのパッケージの場合 $ CMD= もしくはshell_exec( 'のping -c 3'。$ターゲット)。 エコー '<前>'。$ cmdを '</前>'。; } } ?>
- $ _POST [] $ _GET []機能付き$ _REQUEST []が、$ _REQUEST []遅くなります。すべてのポストから提出されたデータとは方法が$ _REQUEST配列から入手できます取得します
- php_uname - PHPの情報を実行しているリターンシステム
- 別の文字列の最初の発生に検索文字列のstristr()関数
- php_uname(「s」)は、オペレーティング・システムの名前を返します。
中
利用:
|| または&;&、または&
ソース分析:
もう少しそれをフィルタリングしますが、完全なフィルターではありませんでした
<?PHPの 場合(ISSET($ _POST [ '提出する' ])) { $ターゲット = $ _REQUEST [ 'IP' ]; // 过滤了&& ,;命令分割符 $置換 = 配列( '&&' => ''、 ';' => ''、 ); $ターゲット = str_replace(array_keys($置換)、$置換、$ターゲット) // OSを決定し、pingコマンドを実行します。 ( 'S')、 'Windows NTの' )){ $ CMD = もしくはshell_exec( 'pingを実行'。$ターゲット)。 エコー '<前>'。$ cmdを '</前>'。; } 他{ $ CMD = もしくはshell_exec( 'ピング-C 3'。$ターゲット) エコー '<前>'。$ cmdを '</前>'。; } } ?>
高い
無力ORZ、唯一のような「ディジタル。デジタル。デジタル。デジタル」入力が実行受信されます。
<?PHP IF(ISSET($ _POST [ '送信' ])) { $ターゲット = $ _REQUEST [ "IP" ]; / * バックスラッシュにaddslashesを除去するためにstripslashes()関数を()関数が追加されました。 * / $ターゲット = にstripslashes($ターゲット); // スプリットザ・はIPをオクテットで4 INTO。 $オクテット = 爆発( ""。$ターゲット); // 各オクテットをチェック整数IF IS IF((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の' もしくはshell_exec( 'pingを実行'。$ターゲット)。 エコー '<前>'。$ cmdを '</前>'。; } 他 { $ CMD = もしくはshell_exec( 'ピング-C 3'。$ターゲット) エコー '<前>'。$ cmdを '</前>'。; } } 他 { エコー '<pre>のエラー:無効なIPを入力しました。</前>' ; } } ?>