[+] 개인적인 공부이니 틀린부분 지적 ㄳ
Low 레벨
1. 기본 페이지와 동작
- Login Form환경의 SQL Injection 기본 페이지.
- bWAPP의 ID,PASSWD인 bee, bug 를 입력해도 로그인 실패가 뜸
2. SQL Injection (' 와 "를 사용해 SQL Injection 가능여부 확인.)
- Login부분에 싱글쿼터( ' ), Password부분에 bug 삽입.
- 마찬가지로 오류 확인이 뜨므로 sql injection 가능.
3. ' or 1=1 # 를 사용했을때의 동작 확인
- where절이 그냥 True 값이기 때문에 모든 레코드를 출력해줌.
- ' or 1=1 #에서 #이 #뒤로 오는 모든것을 주석처리해주기 때문에, Password는 입력할 필요가 없음.
- ' or 1=1 #에서 일부로 #을 빼어 구문오류를 내어 내부적인 동작 확인.
- and 와 함께 내부적으로 작동하는 것을 확인.
- Login Form/Heros페이지인 sqli_3.php파일 확인 사진.
- select from heroes where login='login' and password='password' 형태로 처리하는 것을 확인.
4. Limit을 사용했을때의 동작 확인
앞서 3번을 보면 매번 Neo라는 사용자가 출력되었다. 하지만 이것을 LIMIT문으로 출력을 조절할 수 있다.
- ' or 1=1 limit 1,1 # 삽입해 출력 조절 사진.
- ' or 1=1 limit 3,1 # 삽입해 출력 조절 사진.
5. Low 레벨 대응방안 보기
- functions_external.php의 no_check함수 사용 (항상 똑같아.. 제발 멈춰,...)
- 입력값 검증을 하지 않는 것을 확인.
High 레벨
1. SQL Injection
- ' 을 삽입하여도 오류가 뜨지 않음. sql Injeciton 불가
- 마찬가지로 ' or 1=1 limit 3,1 # 구문을 삽입하여도 sql injection이 실행되지 않는 것을 확인.
2. High 레벨 대응방안 보기
- functions_external.php의 sqli_check_2 함수 사용.
- sqli_check_2 함수의 사진.
- mysql_real_escape_string 함수를 사용
- 문자열에서 특수 문자열을 이스케이프하여 mysql_query() 수행시 안전하게 질의할 수 있도록 함.
'WebHacking > bWAPP' 카테고리의 다른 글
[bWAPP] SQL Injection (Blind - Boolean-Based) (0) | 2022.01.27 |
---|---|
[bWAPP] SQL Injection (Login Form/Users) (0) | 2021.10.18 |
[bWAPP] SQL Injection (CAPTCHA) (0) | 2021.10.15 |
[bWAPP] SQL Injection (AJAX/JSON/JQuery) (0) | 2021.10.15 |
[bWAPP] SQL Injection (Metasploit) (0) | 2021.10.15 |