문제풀이

[Lord of SQLInjection] goblin 문제풀이

suuuullloc 2022. 10. 31. 16:02

처음 사이트를 들어가면 이런 화면이 나온다.

query를 보면 id는 guest값으로 고정되어 있고 no는 값이 없는데 no의 값을 이용해서 문제를 풀어야 할 것 같다.

코드를 살펴보면 ' '' / i 문자가 입력되면 No Quotes ~_~라는 문구가 뜨며 해결이 되지 않는 것 같다.

no 값에 1을 넣어주면 Hello guest라는 문구가 나온다. guest의 no 값이 1인 것 같다.

우리가 알아야 하는 건 guest가 아닌 admin 값인데 guest 값이 1이니까 admin 값은 0이지 않을까 추측해본다.

or문을 이용하여 guest 값을 무시하고 admin 값을 넣어줘야 하는데 or문을 사용하려면 '(싱글쿼터)가 꼭 들어가야 한다.

그럼 or문은 아니라는거고... 다른 방법이 뭐가 있을까?

 

검색을 통해서 찾아보니까 admin이라는 문자를 16진수(hex)로 바꿔서 입력하는 방법이 있는 것 같다.

 

문자를 16진수로 바꿔주는 사이트 : https://www.online-toolz.com/langs/ko/tool-ko-text-hex-convertor.html

 

텍스트를 16진수로 변환 - 온라인 도구

In mathematics and computer science, hexadecimal (also base 16, or hex) is a positional numeral system with a radix, or base, of 16. It uses sixteen distinct symbols, most often the symbols 0–9 to represent values zero to nine, and A, B, C, D, E, F (or a

www.online-toolz.com

 

admin이라는 문자를 16진수로 바꿔주었다.

 

php에서는 hex 형태를 인식시키기 위해서는 16진수 앞에 0x를 붙여줘야된다고 한다.

 

따라서 최종적으로 ?no=0 or id=0x61646D696E라는 주소를 뒤에 붙여주면 된다.

 

이렇게 문제가 풀렸다.

 

 

참고 티스토리 : https://hongpossible.tistory.com/entry/Lord-of-SQL-Injection-3%EB%B2%88-%ED%92%80%EC%9D%B4?category=769715

'문제풀이' 카테고리의 다른 글

[XSS game] Level 3 문제풀이  (0) 2022.11.07
[XSS game] Level 1 & 2 문제풀이  (0) 2022.11.07
[Webhacking.kr] 27번 문제풀이  (0) 2022.10.10
[Webhacking.kr] 14번 문제풀이  (0) 2022.10.04
[Webhacking.kr] 15번 문제풀이  (0) 2022.10.03