본문 바로가기

웹 해킹 (Web)/webhacking.kr

[webhacking.kr] 웹해킹.kr old-27번 (150)

728x90
반응형

이번에는 webhacking.kr의 old-27번 문제입니다. 데이터베이스를 이용하는 문제고 150점이 배점되어 있습니다.

 

들어가면 위와 같은 화면이 출력됩니다. SQL Injection 문제인 것 같습니다. 소스 코드를 보겠습니다.

 

preg_match() 함수로 GET 방식으로 전달하는 no의 select, limit와 같은 문자열들을 필터링해줍니다.

 

쿼리에는 id='guest'가 고정되어 있습니다. 조건문의 주석에는 admin의 no가 2라고 적혀있습니다.

 

"SELECT id FROM chall27 WHERE id='guest' and no=(0) or no like 2-- ")) or die("query error"); 로 만들어 보겠습니다. 

 

그리고 필터링을 우회하기 위하여 GET방식으로 전달되므로 탭을 URL 인코딩한 %09를 띄어쓰기 대신 넣어주겠습니다.

 

admin으로 로그인 되면서 문제를 해결할 수 있습니다.

 

 

728x90
반응형