TeamH4C

[빡공팟 5기] W6 : DVWA 실습 - SQL Injection (medium)

이유갬 2022. 10. 30. 23:22

[ 실습 목표 ]

There are 5 users in the database, with id's from 1 to 5. Your mission... to steal their passwords via SQLi.

데이터베이스에 5명의 유저가 존재하는데 이때 이 계정들의 패스워드를 알아내라!


[ 실습 화면 ]

- select 태그를 통해 id 를 전송하고 사용자 계정의 정보를 획득한다.

 

- id 를 사용자가 직접 값을 입력하는 것이 아니므로 패킷을 이용해서 취약점을 발생 시킬 수 있는지 한번 잡아서 확인해보자!

- User ID 를 1로 선택하고 Submit 버튼을 클릭하고 패킷을 잡아보니 위와 같은 패킷으로 구성되어 있다.

- 이때, 소스코드를 확인해보면 id 의 값을 따옴표를 통해서 받는게 아니라 그냥 직접 정수로 넣어버린다.

- 저번 레벨과 마찬가지로 union 을 이용해보자.

- union select user, password from users# 를 id=1 과 $Submit=Submit 사이에 대입한다.

- Low 레벨에서 users 테이블에서 아이디와 비밀번호의 열 이름은 이미 user, password 라고 구했으므로 위와 같이 쿼리문을 작성할 수 있다.

- 이렇게 모든 유저의 정보가 출력되었다.

- 비밀번호는 md5 으로 암호화되어 있으므로 검색을 통해 알아낸다.

- 이렇게 총 5개의 계정의 아이디와 비밀번호를 알아냈다!