관리 메뉴

Information Security

SQL Injection(POST/Search) 본문

Web Security/Bee-Box

SQL Injection(POST/Search)

HackingPractice 2019. 8. 25. 09:47

SQL Injection(POST/Search)

- POST 메서드로 HTTP 연결 요청을 보내고 있어서 다르게 URL 변수가 나타나지 않는다.  php 페이지와 마찬가지로 입력란에 사용되는 변수가 취약하므로 입력란에 SQL 쿼리를 입력하면 취약점 여부를 확인할 수 있다.

 

Level (Low)

입력란에 abcd 입력 후 아무것도 내용이 보이지 않는다.

그림 1-1 데이터 입력

버프스위트로 abcd’ or 1=1 # 수정 후 데이터 베이스에 전송했다.

그림 1-2 데이터 변조

SQL Injection 쿼리문 전송 후 데이터베이스 내용을 전부 보여준다.

그림 1-3 데이터베이스 내용

Level (Medium)

Level (Medium)은 그림 1-2처럼 내용을 수정해 전송했다.

그림 1-4 데이터 변조

그림 1-3과는 다르게 데이터베이스 내용이 보이지 않는 것을 알 수 있다.

그림 1-5 데이터베이스 내용

대응방안

mysql_real_escap_string 함수를 사용하여 입력한 데이터를 우회한다. 사용자 입력 값에 SQL 문법에서 사용하는 특수 문자가 있을 경우 백슬래시를 붙여 입력 데이터를 SQL 문법으로 인식하지 않게 방어한다.

그림 1-6 mysql_real_escap_string 함수

'Web Security > Bee-Box' 카테고리의 다른 글

SQL injection (Login Form/Hero)  (0) 2019.08.25
SQL Injection (CAPTCHA)  (0) 2019.08.25
SQL Injection (Get/Search)  (0) 2019.08.11
OS Command Injection  (0) 2019.08.11
PHP Code Injection  (0) 2019.08.10