내용을 보시면 별다른 이야기는 없으며 Query를 보내고 result의 무슨 값이든 하나만 들어있으면 통과하는 문제입니다.


따라서 해당 Query를 언제나 참으로 만드시면 됩니다.


흔히 SQL injection을 배울 때 처음 쓰는 ' or 1=1 을 사용하시면 쉽게 해결 할 수 있습니다.

하지만 id의 값을 넣고 뒤에 pw 또한 검증하니 뒤 부분을 주석 처리해서 없애주시면 됩니다.


처음에 --를 주석으로 이용해서 해봤더니 되지 않습니다.

(다 풀고 안 사실. -- 뒤에 공백이 있어야 주석으로 인식되므로 %20을 추가해야 함)



#으로 주석 처리를 하려고 했는데 왠지 모르게 표시가 되지 않고 문제가 풀리지 않습니다. 

Query에는 이상이 없다고 생각하지만 풀리지 않는군요..



굳이 주석을 이용하지 않아도 id/pw 모두 'or '1'='1 을 입력하시면 해결은 됩니다.

1을 '(SingleQuarter)로 감싸준 이유는 id='{$_GET[id]}소스 코드를 보시면 문자열로 넘어가기 때문에 '(SingleQuarter)로 감싸지기 때문입니다.



문제를 풀고 알아보니 URL에서는 #을 인식하지 못한다고 하네요.

#을 사용하려면 URL인코딩 한 값인 %23을 사용하시면 됩니다.


'WarGame > LOS(Lord of SQL)' 카테고리의 다른 글

[LOS] darkelf  (0) 2018.10.05
[LOS] wolfman  (0) 2018.10.05
[LOS] orc  (0) 2018.10.05
[LOS] goblin  (0) 2018.10.05
[LOS] cobolt  (0) 2018.10.05

+ Recent posts