전체 글

전체 글

    Challenge 18 (100pt)

    Challenge 18 (100pt)

    sql injection 문제다. 제출링크가 있고 get 방식으로 no라는 변수에 넘겨준다는 것을 확인할 수 있다. 밑에줄에는 result 도 출력해준다. 소스를 한번 보자. SQL INJECTION RESULT

    Challenge 26 (100pt)

    Challenge 26 (100pt)

    view-source Get['id'] 값이 admin이면 문제가 풀린다. 그대로 admin을 넣어주게 되면, if문의 preg_match에서 걸린다. $_GET['id'] 를 urlencode 해준다. urlencode 해준 값이 admin이 되어야 하기 때문에 admin=%61%64%6d%69%6e 이다. 이걸 한번 더 인코딩 해주기 때문에, %61%64%6d%69%6e를 변환해서 ?id=%2561%2564%256d%2569%256e 이렇게 넣어주면 된다. clear!

    Challenge 38 (100pt)

    Challenge 38 (100pt)

    POST 방식으로 입력받는 창이 존재한다. 어쩌라는 건지 감이 안온다. 소스페이지를 보자 LOG INJECTION 저기 admin 페이지의 존재를 주석에서 말해주고 있다. 일단 입력값으로 준다는 것 말고는 별다른게 없어보이니까 admin 페이지로 가보자. admin으로 로그인 해야 된다고 설명에 나와있다. 이전 페이지로 가서 admin을 입력해보자. -> you are not admin 이라는 문구가 뜬다. admin을 입력값으로 받지 못하는거 같은데, 입력값을 다음과 같이 주면 되겠당 아무값.....+개행+ip+admin 개행값을 고민하고 있는데, \n %0a 같은 문자들이 먹히지 않는다. 그래서 input 창의 태그값을 textarea 로 바꾼 뒤, 개행을 넣어서 입력해 주었다. 그리고 admin 페..

    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

    LOS -rubiya : Cobolt

    LOS -rubiya : Cobolt

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("cobolt"); elseif($result['id']) echo "Hello {$result['id']}You are not admin :("; highlight_file(__FILE__); ?>이전 문제와 비슷한 필터링이다. if($result['id'] == 'admin') solve("cobolt"); 여기서 result 의 id 값이 admin 이면 문제가 풀린다.pw 부분에 걸려있는 것은 md5 해쉬로, 암호화다. 굳이 저기까지 손댈 필요 없다는 의미로 받아들이면 될..

    LOS - rubiya : Gremlin

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("gremlin"); highlight_file(__FILE__);?>필터링 항목 : id, pw 에 "prob" "_" "." "()" 사용 불가능. -> No Hack ~_~result query 에 id 값이 존재하면 된다.?id='or 1=1 %23-> id= 공백 or "참" 이기 때문에, query 가 의미하는 것은 "Select id from prob_gremlin" 과 같은 의미이다. -> %23는 #으로, 한줄 주석을 의미한다.  $_GET['id'] 이후의 query 를 주석으로 만들..

    Challenge 15 (old) _50pt

    Challenge 15 (old) _50pt

    문제에 접속하면 "access denied" 라는 alert 창이 뜨면서 팅긴다. Chrome 기준으로 설명하자면 javascript 를 허용-> 차단 으로 바꿔주게 된다면, 아무것도 뜨지않는 빈 화면을 마주할 수 있다. 개발자 도구로 들어가서 어떤 정보가 있는지 확인해 보도록 하자.(F12) document.write( "[Get Flag] "); 라고 쓰여져 있는 부분을 보면. HTML 의 a 태그임을 알 수 있다. 1) document.write는 javascript로 C언어의 printf 같은 역할을 해준다고 하면 이해하기 쉬울 것 같다. 2) : 하이퍼 링크를 걸어주는 태그 사용양식 __링크이름__ -> 부가적인 부분이 있지만 지금 짚고 넘어가야 하는 것은 이정도면 충분하다. 그럼 이제 문제 이..