MISSON. 버프스위트를 이용해 사용자들의 id와 password를 획득하자.
Quest. 데이터베이스 정보를 알아내세요.

이번에도 지난번과 같이 '를 통해 SQL Injection이 가능한지 살펴보았다.

버프스위트를 이용해 살펴보았다.
하단의 title과 action이 눈에 띈다.
action = search는 아마도 이번 injection post/search를 말하는 것 같고, title을 건드려보자.

title에 siss라고 작성한 뒤 forward를 했다.

목록에 siss라는 영화가 없었기 때문에 이런 결과가 나온 것 같다.
버프스위트를 이용해서 홈페이지를 건드릴 수 있다는 것을 알아냈다.
데이터베이스 정보를 알아내자.
0' UNION SELECT ALL 1,@@version,3,4,5,6,7#

그러면 이렇게 데이터베이스에 대한 정보를 알 수 있다.
Quest. 데이터베이스에 존재하는 모든 테이블 명을 출력하세요.
information_schema를 사용해서 확인해보자.
0' UNION SELECT ALL 1,table_name,3,4,5,6,7 from information_schema.tables#

잘 출력되었다.
Quest. 사용자 정보가 들어있는 칼럼을 출력하세요.
이전 실습에서 우리는 사용자 정보가 users에 들어있다는 것을 확인했다.
따라서 users의 칼럼을 출력하면 된다.
0' UNION SELECT ALL 1,column_name,3,4,5,6,7 from information_schema.columns where table_name= 'users'#

Quest. 사용자의 id, password, secret, login 정보를 출력해봅시다.
id, password, secret, login 칼럼을 출력하면 된다.
0' UNION SELECT ALL 1, login, password, email, secret,6,7 from users#

Quest. 사용자의 비밀번호는 해시 값으로 암호화되어 있습니다. 해시값을 크랙해 비밀번호를 알아봅시다. (툴을 설치할 필요 없이 웹사이트를 이용하셔도 됩니다.)
아까 구해낸 password가 해시 값으로 암호화되어 있다.
웹사이트를 이용해 해시값을 크랙하자.
두 사용자의 비밀번호가 같기 때문에 한번만 해도 될 것 같다.

그리고 버프스위트 사용하는 장면을 잘 나타내지 못해서 덧붙여보자면
원래 Search for a movie: 옆에 있는 텍스트박스에 입력해서 문제를 해결했는데 이를 버프스위트의 타이틀에 입력한 뒤 forward를 하면 똑같이 실행된다.