source 가 주어져 있다. id 파라미터가 없을 경우 $_GET[id] 는 guest가 입력이 된다.$_GET[id] 파라미터에는 아래와 같은 문자가 있거나 18글자 이상이 되면 Access Denied가 발생한다. select $_GET[id] from c_61 order by id desc limit 1다른 문제들과 달리 특이하게 컬럼 위치에 입력한 값이 들어가는 것을 볼 수 있다.그리고 id 컬럼의 값으로 admin이 나오면 문제를 해결할 수 있다. ?id=id 해서 Query를 완성시켜주면 아래와 같이 zombie 라는 값이 출력되는 것을 볼 수 있다. admin을 만들어주기 위해서는 별칭을 이용하면 쉽게 해결할 수 있다.?id=0x61646d696e id또는?id=0x61646d696e as..
페이지에 접근하면 Access Denied와 함께 소스 파일을 제공한다. 소스 파일을 보면 $_COOKIE[PHPSESSID]에 0~9의 값이 있을 경우 Access Denied가 발생하는 것을 볼 수 있다.따라서 쿠키값을 문자로만 구성하여 적용시키고 다시 로그인을 하면 Access Denied 대신에 hi라는 문구를 볼 수 있다. GET 파라미터로 mode=auth가 있을 경우 Auth~를 출력한 다음 readme/$_SESSION[id].txt 파일의 내용을 $result에 담는다.그리고 $result게 담긴 값과 $_SESSION[id] 값이 같을 경우 Done! 이라는 표시와 함께 문제를 해결할 수 있다. mode=auth가 없을 경우에는 readme/$_SESSION[id].txt 파일을 만들어..
소스와 함께 JOIN, LOGIN을 할 수 있는 테이블을 볼 수 있다. 소스를 눌러서 내용을 보면 위에 있는 코드는 LOGIN 부분이고 아래 부분은 JOIN 부분인 것을 알 수 있다. - LOGIN 부분($_POST[lid] && $_POST[lphone])두 값이 전송되면 c59 테이블에서 해당 값이 있는 지 조회를 하고 조회한 아이디가 admin이면 문제를 해결할 수 있다. - JOIN 부분($_POST[id] && $_POST[phone])두 값이 전송되면 여러 검증을 거치게 된다. phone은 20글자가 넘으면 접근이 제한되고 admin|0x|#|hex|char|ascii|ord|from|select|union가 있을 경우에도 접근이 제한된다.id는 admin이라는 문자가 올 수 없다. inser..