상세 컨텐츠

본문 제목

[Lord of SQL Injection] goblin 3번 풀이

[Tech] War Game/Lord of SQL Injection

by tech-dailylife 2020. 7. 6. 13:35

본문

반응형

사이트 주소 : https://los.rubiya.kr/

 

3번 문제 goblin 입니다.

 

[문제 접근]

query를 보면 id와 no 파라미터가 있고 id는 guest로 고정되어 있습니다. no 파라미터는 입력값을 받고 있습니다.

no 파라미터를 통해 공격을 해야 할 것 같네요.

 

앞 문제와 똑같은 형태로 넣어보겠습니다.

?no=0'||1=1%23

코드를 보면 알 수 있듯이, ' " ` i 문자가 입력되면 No Quotes 라는 문자가 나오네요. 해당 문자들은 필터링되어 사용할 수 없습니다.

 

0 을 넣어보면 Hello guest가 나오는 것을 보면 no가 0인 id는 guest인 것 같습니다.

 

admin을 맞춰야하는데 admin은 0 아니면, 2가 될 확률이 높다고 추측됩니다.

하지만 0이나 2를 no에 넣어도 query를 보면 where절에 id가 guest로 고정되어 있고, no 값과 and 연산을 하기 때문에

guest인 경우에만 Hello $result[id] 를 출력하고 나머지는 거짓이 되어 버립니다.

따라서 앞의 id가 guest인 것을 무시되도록 만들어야 합니다.

?no=0||no=0

where id='guest' and no=0 이 거짓이 되며, 뒤에 || (OR) no=0을 붙여

no=0 인 id 값이 호출되도록 했습니다.

하지만 0은 아무 것도 나오지 않네요. 2를 해보겠습니다.

 

[문제 정답]

정답 : ?no=0||no=2

"GOBLIN Clear!" 가 나타납니다. 정답!

다음 스테이지로 넘어가시죠~

 

select 구문의 where 조건 절을 id='guest' and no=0을 하여 거짓으로 만들고 뒤에 || (OR)로 no를 추측하여 넣었습니다.

그 결과로 no=2 인 id가 admin으로 확인할 수 있고, 문제를 성공시켰습니다.

반응형

관련글 더보기

댓글 영역