워게임/LORD OF SQLINJECTION

[LOS] Level 1(gremlin)

name2965 2022. 5. 2. 22:09
728x90

 

 

 

제시된 php는 다음과 같습니다.

 

여기서는 id와 pw를 GET을 통해서 받은뒤 검증과정을 통과해야만 풀리는 문제로 보입니다.

 

id와 pw가 DB에 있는 정보와 일치해야만 하는데 여기서는 id만을 이용해서 검증과정을 통과할수 있습니다.

 

id=aaa' or 1=1 --%20

 

 

다음과 같은 쿼리문을 url을 통해서 보내면 id는 임의의 값으로 전송되고, or 1=1을 통해서 id에 임의의값을 넣더라도

or 뒤에있는 구문이 참이기 때문에 이 조건문은 참이 됩니다. 그렇기 때문에 id값을 모른다 하더라도 통과가 가능합니다.

그 뒤에 pw에 대한 검증은 "--"와 같은 주석을 통해서 없는 코드 취급을 할수 있습니다.

그리고 주석은 앞뒤에 공백이 있어야만 제대로 작동하기 때문에 공백을 써야하는데

url에서는 뒤에 문자열없이 공백만 쓰면 없는것으로 간주하기 때문에 "%20"이라는 공백을 url encoding한 값을 써줘야 합니다.

 

이러한 원리로 쿼리문을 작성해서 전송하면 

 

 

 

 

다음과 같이 풀립니다.

 

728x90

'워게임 > LORD OF SQLINJECTION' 카테고리의 다른 글

[LOS] Level 6(darkelf)  (0) 2022.05.03
[LOS] Level 5(wolfman)  (0) 2022.05.03
[LOS] Level 4(orc)  (0) 2022.05.03
[LOS] Level 3(goblin)  (0) 2022.05.02
[LOS] Level 2(cobolt)  (0) 2022.05.02