id부분에 '(싱글쿼터)가 한 개 부족해서 오류가 납니다.

하지만 str_replace()를 통해서 싱글쿼터가 입력되면 두 개로 증가하고, \도 지워지기 때문에 Query를 완성할 수 없습니다.



값을 입력하면 다음과 같은 Error 메시지가 나오게 됩니다.



쿼리를 올바르게 완성할 수 있다면 해결할 수 있는 문제입니다.

중간에 보면 substr($_POST[id],0,15)는 문자열을 15개까지만 받게 만들고 그 이상은 버리게 됩니다.

그렇다면 마지막 15번째 문자가 '(싱글쿼터)가 되면 15,16번째가 ''로 새로 생긴 '(싱글쿼터)는 사라지게 됩니다.


DB에서 문자열을 비교할 때 특정한 상황이 있습니다. 

'a' = 'a '를 입력하면 False가 나와야 하는데 True가 나오게 됩니다.

비교하는 값의 길이가 다르면 padding값으로 공백을 추가한다는 것입니다.


그렇기 때문에 admin         '를 입력해서 문제를 해결할 수 있습니다.



[참고]


MySQL에서 'a' = 'a '가 true로 평가된다?http://woowabros.github.io/study/2018/02/26/mysql-char-comparison.html

'WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] prob 3  (0) 2018.12.19
[webhacking.kr] prob 36  (0) 2018.12.19
[webhacking.kr] prob 53  (0) 2018.12.14
[webhacking.kr] prob 52  (0) 2018.12.14
[webhacking.kr] prob 25  (0) 2018.12.13

+ Recent posts