SQLite sql injection 쉬운 문제.
생각해보니 SQLite를 사용하는 곳이 주로 모바일 앱인데 PC 기반에 비해 보안이 매우 취약할 것 같다.
특히 만드는 데에 급급해서 보안 신경도 안 쓸 것 같은 느낌..?
아무런 필터링이 없다.
방해되는 것이라고는 addslashes()
함수 하나인데, sqlite와는 궁합이 썩 좋지 않아서, \\'
로 필터링되어 나온다고 하더라도 sqlite에서는 escape 처리하지 않는다.
다만 문제를 풀 때에 \\
를 어떻게 피해서 쿼리를 짤 것이냐가 관건이다.
문자열 함수가 sqlite에서도 똑같이 char()
이다.
이를 사용해서 문제를 풀었다.
select id from member where id='123123' and pw='\\'union select char(97,100,109,105,110)-- '