컴맹에서 컴공 그리고 화이트 해커가 되는 그날까지

webhacking.kr 27번 문제 풀이 본문

해킹/Web hacking

webhacking.kr 27번 문제 풀이

공부하는 뚱이 2023. 2. 22. 21:19
반응형

SQL INJECTION이란 말과 함께 입력할 수 있는 칸과 view-source가 있다. 이번

문제는 SQL INJECTION 취약점을 이용하는 문제인 것 같다. 일단

 

소스코드를 보자 밑에

 

GET ['no']에 대한 php를 살펴보면 sql injection 문제답게 sql injection 필터링이 되어 있다. 필터링을 우회하여 문제를 해결해야 하는 것 같다. 일단 아이디가 guest라고 하면 guest가 출력이 된다고 한다. 그리고 아이디가 admin이면 문제가 풀린다. 그리고 주석으로 admin의 no = 2라고 한다. 그럼 

"select id from chall27 where id='guest' and no=({$_GET['no']})" 이 부분을 sql injection 공격을 해야 하는 부분이다. select

 

id from chall27 where id='guest' and no=아무 숫자) or no = 2-- )"))

요렇게 하면 sql injection이 성공하여 admin으로 로그인이 될 것이다.

그럼 필터링되어있는 =이랑 공백을 해결해야 하는데 

= 이거는 like로 사용할 수 있고 공백은

%20이 필터링되어있어서 %09 (tab)을 사용해야겠다. 필터링은

--을 사용하면 그렇다면

한번 필터링 우회를 한 sql구문을 만들어 보면

 

아무숫자)%09or%09no%09like%092--%09 

이렇게 된다. (여기서 -- 뒤에 공백이 있어야 주석처리가 되니 주의해야 한다!) 문제

 

 

해결!

반응형

'해킹 > Web hacking' 카테고리의 다른 글

LORD OF SQLINJECTION darkelf. write up  (0) 2023.03.02
LORD OF SQLINJECTION wolfman. write up  (0) 2023.03.02
webhacking.kr old-12 번 문제 풀이  (0) 2023.02.22
dreamhack file-download-1 풀이  (0) 2023.02.21
XSS-game level 6  (2) 2023.02.02