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! 메시를 보여주는 것을 알 수 있다.
Login Iron Man, Password ‘ or 1=1 #을 입력해 Neo 계정이 보이는 것을 알 수 있다.
Level (Medium)
Level (Medium)은 그림 1-2처럼 Iron Man ‘ or 1=1 #을 입력하면 Invalid credentials! 메시지를 보여준다.
대응방안
addslashes 함수를 통해 쿼터(',")같은 특수 문자들을 포함하고 있는 문자열에 역 슬래쉬(\)를 넣음으로써 오류를 최소화시키는 역할을 한다. mysql_real_escap_string 함수를 사용하여 입력한 데이터를 우회한다. 사용자 입력 값에 SQL 문법에서 사용하는 특수 문자가 있을 경우 백 슬래시를 붙여 입력 데이터를 SQL 문법으로 인식하지 않게 방어한다.