WriteUp/LOS_rubiya

    LOS -rubiya : Yeti

    query : {$query}"; sqlsrv_query($db,$query); $query = "select pw from prob_yeti where id='admin'"; $result = sqlsrv_fetch_array(sqlsrv_query($db,$query)); if($result['pw'] === $_GET['pw']) solve("yeti"); highlight_file(__FILE__);?>mssql 환경에서 진행된다.id, pw 에 필터링 항목 확인해보면, master, sys, information, ; 이 있다. 쿼리에 입력 받아주고, id가 admin인 result 의 pw 값이 Get 방식으로 입력해준 pw 와 같다면 문제가 풀린다.에러를..

    LOS -rubiya : Skeleton

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("skeleton"); highlight_file(__FILE__); ?>pw 를 Get 방식으로 받아주고, prob _ . () 를 필터링한다.그리고 id 가 admin이면 문제가 풀린다. 그런데, query 뒷부분에, and 1=0 이라는 false 구문이 들어있다. 해결해야 할 문제다.and 1=0은 한줄 주석으로 처리해주면 된다. # 을 이용하자. # 뒤의 모든 것들은 주석으로 처리된다.넣어줄때 url-encoding 하는거 잊지말자.?pw=' or id='admin'..

    LOS -rubiya : Vampire

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("vampire"); highlight_file(__FILE__); ?>이전 문제들이랑 다르게 strtolower 라는 함수가 등장한다.직관적으로 읽어봤을때 string to lower 를 의미하는것 같다. 확실히 하기 위해서 구글링해보자. -> 맞다.Get으로 받아준 id 값을 소문자로 치환해주고, admin이라는 값을 NULL로 바꿔준다.그리고 id 가 admin이면 문제가 풀린다. 조금만 고민해보면 쉽게 문제를 풀 수 있다. admin이라는 값은 초기 입력에서 한번만 삭제..

    LOS -rubiya : Troll

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("troll"); highlight_file(__FILE__);?>id 에 Get 방식으로 입력을 받아주고, 필터링한다.\를 필터링하고, admin을 필터링하는데, 눈치가 빠르다면 항상 붙던 \i 라는 게 없다는것을 알 수 있다.기본적으로 preg_match 방식은 대소문자를 구분한다. \i 옵션을 넣어주게 된다면 대소문자를 구분하지 않게 된다는 것을 알고 가자.result 의 id 가 admin이면 문제가 풀리게 된다.위에 작성해놓은 것처럼 대소문자가 섞여있다면 문제를 pass 할..

    LOS - rubiya : Orge

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_orge where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orge"); highlight_file..

    LOS - rubiya : Darkelf

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("darkelf"); highlight_file(__FILE__); ?>pw 에 Get 방식으로 입력을 받는데, prob _ . () or and 를 필터링한다. or and 를 필터링하는게 메인이겠다. 이후에 result 의 id 값이 admin이면 문제가풀린다.or 는 %7C%7Cand 는 %26%26으로 인코딩해주면 된다. ?pw='or id='admin'%23 을 넣어주고 싶으니,..

    LOS -rubiya : Wolfman

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("wolfman"); highlight_file(__FILE__); ?>pw를 Get 방식으로 받아주고, prob _ . () 공백을 필터링한다. 로그인 정보를 보여주고, 이때 로그인한게 admin이면 문제가 풀린다.공백을 필터링하는게 제일 중요한 문제인듯 하다. /**/ 을 이용해도 되고, %0a,%0b를 이용해도 된다. ?pw='or id='admin' %23 을 넣어주고 싶으니?pw=..

    LOS -rubiya : Wolfman

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("wolfman"); highlight_file(__FILE__); ?>pw를 Get 방식으로 받아주고, prob _ . () 공백을 필터링한다. 로그인 정보를 보여주고, 이때 로그인한게 admin이면 문제가 풀린다.공백을 필터링하는게 제일 중요한 문제인듯 하다. /**/ 을 이용해도 되고, %0a,%0b를 이용해도 된다. ?pw='or id='admin' %23 을 넣어주고 싶으니?pw=..

    LOS -rubiya : Orc

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello admin"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_orc where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc"); highlight_file(__FILE__)..

    LOS - rubiya : Goblin

    LOS - rubiya : Goblin

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("goblin"); highlight_file(__FILE__); ?>id 값이 admin이면 풀리는 문제.' (quote) 가 필터링 되는 문제. -> 문자열로 주지말고 hex 값으로 주면 된다.no 라는 변수를 이용해서 guest라는 id 값을 admin으로 바꿔줘야한다no 값에 0을 넣어주고 다시 id에 값을 주자.?no=0or%20id=0x61646D696E