Hacking/Web.

'1=1'-- - 가 참이 되는 이유

2018. 1. 4. 20:54

최근에 어떤 친구가


select * from table where id='adsf' or '1=1'-- -

가 ' or 1=1-- -과 결과가 같다는 말을 하였다. 처음에는 그걸 믿지 않았지만, 오늘에서야 그게 어떤 방식으로 참이 되는지 알게 되어 포스팅한다. 

저 쿼리가 참이 되는 이유는 False based SQL injection과 원리가 흡사하다. MySQL이 값의 형태(char, int, etc.)를 자유롭게 사용해서 일어난 결과이다. 


처음에는 이게 char 값 안에서 1=1 연산되나 싶었다. 



아니었다. 


여기서 어떤 원리인지 직감했다. 



내가 예상한대로라면 1이 떠야하지만, 0이 떴다. False based SQL Injection 이 맞다. 



'1'이 1로 연산이 되기 때문에 1이 뜬 것이다. 



궁금증이 해소되었다. 

'Hacking > Web.' 카테고리의 다른 글

SQL Injection table 이름 모를 때  (0) 2018.02.08
Flask에서 SSTI 나오면 답 없는 점  (0) 2018.01.14
워게임 문제 아이디어  (0) 2017.12.09
웹쉘 업로드 확장자 우회  (0) 2017.11.08
CTF SSRF시 확인사항  (0) 2017.11.06