CTF問題を例として,parse_url関数をバイパスすることを学ぶ

問題

運用保守担当者の間違いのため、イントラネット認証ページは外部ネットワークに展開されましたが、幸いにも、開発者はドメイン名の検証が行われました。

Writeup

ソースコードを表示し、次のコードを見つけます:
  
  ini_set("display_errors",0);
  $uri = $_SERVER['REQUEST_URI'];
  if(stripos($uri,".")){
      die("Unkonw URI.");
  }
  if(!parse_url($uri,PHP_URL_HOST)){
      $uri = "http://".$_SERVER['REMOTE_ADDR'].$_SERVER['REQUEST_URI'];
  }
  $host = parse_url($uri,PHP_URL_HOST);
  if($host === "c7f.zhuque.com"){
      setcookie("AuthFlag","flag{*******");
  }
  ?>
明らかに、parse_url関数をバイパスすることを検査です.
しかし、最初にドットのマッチングが増え、バイパスすることができます。 ペイロードを使用する:.@c7f.zhuque.com/..//
以上です。

0 件のコメント:

コメントを投稿

$_SERVER['SCRIPT_NAME']変数のインジェクション

0x00 概要 $_SERVER['SCRIPT_NAME']はPHP用の1つ組み込み変数です。ここでは、使用時には、一般的にフィルタリングされません。 fuzzの後、この変数の取得は実際に問題がある、予期しないデータが導入されます。 一部のWebサーバ...