Hard login
<?php
error_reporting(0);
session_start();
require __DIR__.'/lib.php';
if(isset($_GET['username'], $_GET['password'])){
if(isset($_SESSION['hard_login_check'])){
echo 'Already logged in..';
}else if(!isset($_GET['username']{3}) || strtolower($_GET['username']) != $hidden_username){
echo 'Wrong username..';
}else if(!isset($_GET['password']{7}) || $_GET['password'] != $hidden_password){
echo 'Wrong password..';
}else{
$_SESSION['hard_login_check'] = true;
echo 'Login success!';
header('Location: ./');
}
echo '<hr>';
}
highlight_file(__FILE__);
이 문제는 trick 으로 풀 수 있을까 굉장히 많이 고민했었다. 기껏해봐야 username 과 password에 Array()로 값을 집어넣는 정도?
근데 이 문제는 header('Location: ./'); 을 주목해야 한다.
우리는 항상 http://hardlogin.solveme.peng.kr/index.php 에 접속하면 login.php 에 접속하는데 한 번 curl로 HTTP Header를 무시하고 HTTP Req를 하게 되면 다음과 같은 플래그를 얻을 수 있다.
'write-ups > solveme.safflower.kr' 카테고리의 다른 글
Flag not found solving .. (0) | 2018.03.15 |
---|---|
Give me a link 2 write up (1) | 2018.03.04 |
URL filtering write up (1) | 2018.03.04 |
Hell JS write up (0) | 2018.03.04 |
Hash collision write up (0) | 2018.03.04 |