티스토리 뷰
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 |
댓글