write-ups/solveme.safflower.kr

Hard login

2018. 3. 4. 01:44


<?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