2013년 3월 22일 금요일

webhacking.kr - 18번문제

- webhacking.kr - 18번문제 -
[sql injection]

1. sql injection 문제이다. 하단의 index.phps링크를 클릭하여 소스를 확인한다.




2. index.phps소스 확인 결과 admin 은 no값이 2 일때 나오는것을 유추해볼수 있다.
 그렇다면 2 or 1 를 입력시 no=1 <= false 이고 false or 1 이므로 true 값이 되면서 guest가 나와야 한다는것을 미루어 짐작할수있다.




3. 1을 입력시 guest가 나온다.




4. 1 or 2 나 2 or 1을 넣었을때  no hack 이라고 뜬다.
    이유는 eregi에 띄어쓰기 검사가 있으므로 띄어쓰기를 하면 안된다.
   그러므로 %0a를 쓰도록 한다.

   2 or 1  =>  2%0aor%0a1  대입시 guest가 출력된다.



 5. guest=1 이고 admin=2이므로 1을 넣었을때 guest가 나오는건 당연한것이므로 2를 넣기위해 limit 을 사용하도록 하자.

최종 쿼리 = 2%0aor%0a1%0alimit%0a1,1  를 url 부분 no=뒷부분에 삽입한다.

이문제는 이미 풀었던 문제이므로 already solved 메세지가 뜨는데, 원래는 hi admin 과 password가 출력된다.





이상 webhacking.kr 4번문제 sql(url) injection 이였습니다.

댓글 없음:

댓글 쓰기