webhacking.kr old-01 回答メモ

https://webhacking.kr/challenge/web-01/

ページにアクセスすると、「ソースコードを確認しろ」と出てくる。

そのソースコードはこちら。

<?php
  include "../../config.php";
  if($_GET['view-source'] == 1){ view_source(); }
  if(!$_COOKIE['user_lv']){
    SetCookie("user_lv","1",time()+86400*30,"/challenge/web-01/");
    echo("<meta http-equiv=refresh content=0>");
  }
?>
<html>
<head>
<title>Challenge 1</title>
</head>
<body bgcolor=black>
<center>
<br><br><br><br><br>
<font color=white>
---------------------<br>
<?php
  if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>=4) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>3) solve(1);
  echo "<br>level : {$_COOKIE['user_lv']}";
?>
<br>
<a href=./?view-source=1>view-source</a>
</body>
</html>

ソースコードを見ると、 COOKIEで設定されるuser_lvのレベルを設定すれば solve(1) を呼び出せることができそう。

COOKIEはブラウザの「検証」機能にある「Application」タブから確認が可能!

https://qiita.com/pipi0813/items/93e60c605f89f93e49fb

そして、このCOOKIEの値はブラウザから操作することが可能。 ダブルクリックして数字をいじってみる。 ソースコードから、数字は4以上だと1に設定されてしまい、3より小さいと実行されないので、 3.5を入れてみる。

正解だった!

page:https://minegishirei.hatenablog.com/entry/2024/08/14/095752