-
[Webhacking.kr] Challenge 7Wargame/Webhacking.kr 2023. 1. 14. 17:53반응형
Challenge 7을 풀어보자.
문제 화면을 보면 Admin page라는 문구와 auth 버튼, view-source 링크가 있다.
바로 auth 버튼을 눌러보았지만, Access_Denied! 라는 알림창이 뜬다.
힌트를 보기 위해 소스 페이지로 가보도록 하자.

<Challenge 7의 문제 화면> 지금은 정체되어 있지만, LOS 문제를 풀어본 덕에 SQL Injection 문제라는 것을 보자마자 알 수 있었다.
코드의 내용은 val 파라미터를 받아 문자열 필터링을 우회해 lv에 2를 넣어주면 된다.
특히, 문자열 필터링 부분에서 \s는 공백을 의미한다. (저걸 못 보고, 공백을 넣어서 시간이 조금 걸렸다..)

<Challenge 7 문제의 소스 코드> rand를 1로 생각하고 쿼리를 작성해보자.
chall7 테이블의 lv 컬럼에 없을 만한 숫자를 where로 넣고 union select를 이용해 2를 넣도록 한다.
아래의 사진처럼 쿼리를 작성하면 문자열 필터링을 피하면서 lv가 2(char(50))인 select를 할 수 있다.

<작성된 쿼리> rand에 따라 괄호의 갯수가 변하므로 새로고침을 하다보면 old-07 Pwned!가 출력되며 문제가 해결된다.

<Challenge 7 문제 완료> 반응형'Wargame > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] Challenge 15 (0) 2023.03.31 [Webhacking.kr] Challenge 8 (0) 2023.02.27 [Webhacking.kr] Challenge 6 (0) 2023.01.14 [Webhacking.kr] Challenge 5 (0) 2023.01.13 [Webhacking.kr] Challenge 4 (0) 2023.01.12