관리 메뉴

Information Security

SQL injection (Login Form/Hero) 본문

Web Security/Bee-Box

SQL injection (Login Form/Hero)

HackingPractice 2019. 8. 25. 13:53

SQL injection (Login Form/Hero)

hero 그룹에 속하는 사용자들이 로그인하면 로그인 사용자의 비밀번호 힌트를 출력한다.

 

Level (Low)

Login 1234 Password 1234 입력해 Invalid credentials! 메시를 보여주는 것을 알 수 있다.

그림 1-1 로그인 실패

Login Iron Man, Password ‘ or 1=1 #을 입력해 Neo 계정이 보이는 것을 알 수 있다.

그림 1-2 Login Form

Level (Medium)

Level (Medium)은 그림 1-2처럼 Iron Man ‘ or 1=1 #을 입력하면 Invalid credentials! 메시지를 보여준다.

그림 1-3 로그인 실패

대응방안

addslashes 함수를 통해 쿼터(',")같은 특수 문자들을 포함하고 있는 문자열에 역 슬래쉬(\)를 넣음으로써 오류를 최소화시키는 역할을 한다. mysql_real_escap_string 함수를 사용하여 입력한 데이터를 우회한다. 사용자 입력 값에 SQL 문법에서 사용하는 특수 문자가 있을 경우 백 슬래시를 붙여 입력 데이터를 SQL 문법으로 인식하지 않게 방어한다.

그림 1-4 functions_external.php 코드

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

Blind SQL Injection 공격  (0) 2019.08.25
SQL Injection (Login Form/User)  (0) 2019.08.25
SQL Injection (CAPTCHA)  (0) 2019.08.25
SQL Injection(POST/Search)  (0) 2019.08.25
SQL Injection (Get/Search)  (0) 2019.08.11