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)-- '