개행
DATE : 2023/11/29
이번에 살펴볼 내용은 WAS에 작성해둔 구문에 개행이 포함되는 경우이다.
이때 개행이 무엇인지 간단히 말하자면, 다른 말로는 줄 바꿈
SQL 내에서는 사용자가 주석을 사용하지 못하도록 하는 장치 라고 표현할 수 있을 듯하다.
지금까지 작성해온 Query와는 달리 개행이 포함되면 말 그대로 Query 내에 줄 바꿈이 일어난다.
사실 "엔터 한 번 누른 거 가지고 뭐가 그리 달라지겠어?" 싶지만
Query가 실행된 결과를 보면 생각이 달라질 것이다..!!
개행이 포함된 Query를 미리 서버에 구현해두고 로그인 우회를 시도해보자.
간단하게 주석 처리 해버리면 끝이겠지~ 라는 마음으로 엔터를 누르게 되면
😲😲😲
나오라는 결과는 안 나오고 에러가 뜬다.
에러 내용을 한 마디로 요약하자면
pass='hanhxx1234' 즈음 어딘가 문법 에러 있음^^ 이라는 소리인데
사용자가 입력한 값을 대입해 Query를 생각해보면 일단 혼자 남아 도는 따옴표가 하나 있고
주석으로 뒷 내용이 무효화된다고 치면 개행으로 인해 and만 사라지게 된다.
결과적으로
와 같은 Query가 만들어지게 되기 때문에 에러가 나는 것!
따라서 이런 경우에는 사용자가 SQL injection을 수행하기 위해 사용하는 주석을
막을 수 있게 되는 것이다.
그렇다면 반대로, 주석이 막혀버린 상황에서 로그인을 우회할 수 있는 방법은 없는 걸까?? 🧐
Last updated