SMALL
처음 문제인 gremlin을 풀어보고자 들어왔다. query 에서 id,pw값을 get으로 받아 query문을 토대로 조건문을 통해 참이면 문제가 해결이 된다.
url맨뒤에 ?id=1&&pw=1을 추가해주었다.
get방식으로 id와 pw에 1을 각각 넣어주니 잘들어간것을 확인해 볼 수 있었다.
그렇다면 참이 되려면 id와 pw를 정확히 맞춰야 하는데 그런 방법보다 무조건 참이 되어 통과하는 방식으로 풀어보려고 한다.
https://los.eagle-jump.org/gremlin_bbc5af7bed14aa50b84986f2de742f31.php?id=1&&pw=1' or '1'='1
이렇게 작성해 주었다. 왜?
id = '1' and pw = '1' or '1' = '1' 을 보면 알수있다. SQL에서 AND, OR연산자에서 우선순위는 AND가 먼저이다.
그렇다면 이렇게 보면 쉽다. (id='1' and pw='1') or '1' = '1' 처음 연산자부분에서는 false 뒤에 or 뒤에는 true 그러면 최종적으로
0 과 1 을 or 연산 한다고 보면 된다. 결과는 당연 true !
이런식으로 SQL 연산자 우선순위를 통해 문제를 해결해 보았다.
'Network > LOS' 카테고리의 다른 글
[LOS_6]darkelf (0) | 2019.08.16 |
---|---|
[LOS_5]wolfman (0) | 2019.08.16 |
[LOS_4]orc (0) | 2019.08.16 |
[LOS_3]goblin (0) | 2019.08.16 |
[LOS_2]cobolt (0) | 2019.08.16 |