티스토리 뷰

Wargame/Webhacking.kr

Challenge 18

do9dark 2015. 7. 7. 23:02


SQL Injection 문제이고 소스 파일이 주어져 있다.



소스를 보면 no 값을 입력할 수 있고 challenge18_table에 컬럼은 id, no가 있고 id는 guest와 admin이 있다는 것을 알 수 있다.

그리고 Query를 조작해서 $q가 admin 값을 가져오면 문제를 풀 수 있다.



no=1 을 넣었을 경우 hi guest가 출력이 된다.


SELECT id FROM challenge18_table WHERE id='guest' AND no=$_GET[no]

Query를 보면 WHERE 조건절에 id는 guest라고 명시되어 있고 AND 조건으로 되어 있기 때문에 no 값에 admin의 no 값을 입력하더라도 admin을 나타낼 수 없다.

따라서, 앞의 값을 부정시키고 OR 연산자를 이용하여 no=2 를 참으로 만들어서 admin 값을 나타내는 방법이 있다.

http://webhacking.kr/challenge/web/web-32/index.php?no=-1%0aor%0ano=2

또는 항상 참인 결과를 만든 다음에 LIMIT 연산자를 이용하여 TABLE에서 2번째 값을 가져오는 방법도 있다.

http://webhacking.kr/challenge/web/web-32/index.php?no=-1%0aor%0a1%0alimit%0a1,1

이러한 방법 외에도 다양한 방법으로도 문제를 풀 수 있다.



'Wargame > Webhacking.kr' 카테고리의 다른 글

Challenge 23  (0) 2015.08.02
Challenge 22  (0) 2015.07.12
Challenge 21  (0) 2015.07.12
Challenge 20  (0) 2015.07.09
Challenge 19  (0) 2015.07.08
Challenge 17  (0) 2015.07.07
Challenge 16  (0) 2015.07.07
Challenge 15  (0) 2015.07.07
Challenge 14  (0) 2015.07.07
Challenge 13  (0) 2015.07.06
댓글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
링크
공지사항
Total
Today
Yesterday