문제풀이

목표: 사용자 이름을 모른 채 모든 사용자 데이터에 액세스하려고 합니다. 기본적으로 세 명의 사용자가 있으며 귀하의 임무는 단일 악성 검색으로 세 명의 사용자 모두의 데이터를 출력하는 것입니다.

힌트: 입력을 사용하기 전에 필터링하거나 유효성을 검사하지 않으면 입력 유효성 검사 문제가 부적절하거나 전혀 발생하지 않습니다. 외부에서 입력을 받는 구성 요소를 개발할 때는 항상 유효성을 검사하십시오. 테스트를 쉽게 하기 위해 데이터베이스에 이미 세 명의 사용자가 있습니다. 예를 들어 그 중 한 명은 admin입니다. admin을 검색하여 출력을 테스트할 수 있습니다.

 


 

문제의 정보에 나온대로, admin을 입력 시 admin 계정의 정보가 Toast로 출력되었다.

문제는 다른 사람의 정보도 알아내야하는 것으로, SQL Injection을 통해 알아내도록 하겠다.

 

간단하게 SQL Injection 기본 구문을 통해 다른 사용자의 정보들을 획득하였다.

 

SQLInjectionActivity .java

코드를 살펴보니, 입력 값에 대한 검증이 없고, rawQuery를 통하여 그래도 쿼리문에 적용되어 SQL Injection이 일어났다.

 

복사했습니다!