Webhacking.kr 27번
·
Webhacking.kr
GET 메소드로 전송되는 "no" 파라미터 값에 필터링이 걸려있다. 필터링에 통과되면 쿼리에 대입되고 해당 쿼리가 실행된 결과가 $q 변수에 저장된다. 클리어 조건은 id 값이 "admin" 이면 된다. "no" 값을 '1'로 입력하면 guest 가 입력된다. "no" 값을 -1로 입력하면 아무런 결과도 반환되지 않을 것이다. 다음에는 or 를 이용하여 뒤에 조건을 주는데, 이전 사진을 보면 "guest"의 "no" 값이 '1' 인것을 알아냈다. 그렇다면 최소 "admin"의 "no" 값은 1 보다 클것이다. 그리고 주석을 입력하면 뒤의 괄호 ')'를 무시하여야 하는데 주의할 점은 주석 뒤에 공백이 있어야 한다.
Webhacking.kr 26번
·
Webhacking.kr
GET 파라미터로 전송되는 id 파라미터 값이 "admin" 이면 필터링에 걸려 "no"가 출력된다. 그런데 클리어 조건이 id 값이 "admin" 이여야 한다. 힌트는 바로 urldecode 부분에 있다. URL에서는 한글이나 특수문자 등을 처리하기 위해 입력한 문자를 인코딩 하게 된다. => ' '(공백) = %20 => # = %23 그러나 알파벳의 경우에는 평문이 그대로 들어가기 때문에 이럴 때는 HTML 인코딩을 사용해야 한다. 알파벳 'a'를 HTML 인코딩 하면 %61이 된다. 위 사진에서 보이는 문자열 모두 "admin"을 의미한다. 그러나, "%61dmi"n 을 입력할 시에는 필터링에 걸리면서 "no"가 출력되는데 그 이유는 인코딩된 문자열을 입력하는 순간 브라우저에서 자체적으로 한번 디..
Webhacking.kr 25번
·
Webhacking.kr
25번 문제 기본 페이지로 가면 GET 메소드로 file 파라미터 값에 "hello" 문자열이 대입되어 있다. "hello"가 대입되어 있으니 아래쪽에 "hello world"가 출려된다. 보아 하니 해당 페이지(index.php) 경로에 "hello.txt", "password.php" 가 있고 문제를 풀기 위해서는 "password.php" 파일 내용을 보면 될거 같다. (Local File Include 관련 취약점 인듯) hello.txt 를 보아하니 "index.php?file=hello" URL 결과와 동일하다. 클리어를 위해 "password.php" 파일을 보면 아무 내용도 출력되지 않는다. 제일 처음 사진을 보면 file 파라미터에 "hello" 만 입력되어도 "hello world"가 ..