훈훈훈
Lord of SQL injection(LoS) - 3. Goblin 본문
쿼리와 코드를 살펴보자.
쿼리를 보면 id는 guest 값이 전달 되어있고 no에 값을 전달해야되는 것을 볼 수있다.
이제 코드를 살펴보자
1. if(preg_match('/\ |\"|\`/i', $GET[no]))
=> 싱글 쿼터( ' ) 더블 쿼터( " ) 백 쿼터( ` )를 필터링 하고 있다.
2. if($result['id'] == 'admin') solve("goblin")
=> id=admin 일 때 문제를 풀 수 있다.
임의로 no에 1 값을 넣었을 때 어떤 반응이 나오는지 확인을 해보았다.
"Hello guest"라는 문자열이 출력된 것을 통해 no=1은 guest인 것을 확인할 수 있다.
이제 문제를 어떻게 해결할지 고민을 해보자.
1. id = admin 이어야된다.
2. 싱글쿼터 더블쿼터 백쿼터는 사용 할 수 없다. => id에 admin 값을 전달 할 수 없다.
3. 따라서 아스키코드표를 참조하여 필터링을 우회하자.
no=0 or id=char(97,100,109,105,110) 을 입력했을 때 문제가 풀리는 것을 확인할 수 있다.
'정보보안 > 웹 해킹 문제' 카테고리의 다른 글
Lord of SQL injection(LoS) - 6. Darkelf (0) | 2018.10.15 |
---|---|
Lord of SQL injection(LoS) - 5. wolfman (0) | 2018.10.15 |
Lord of SQL injection(LoS) - 4. Orc (0) | 2018.10.15 |
Lord of SQL injection(Los) - 2. Cobolt (0) | 2018.10.14 |
Lord of SQL injection(LoS) - 1. Gremlin (0) | 2018.10.14 |
Comments