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 |