일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 카카오프로젝트
- php
- 자바스크립트 기본 문법
- 보안뉴스 요약
- javascript
- 자바스크립트 prototype
- 깃허브
- GIT
- 보안뉴스
- 카카오프로젝트100
- 자바스크립트 API
- python
- oracle db
- oracle
- 보안뉴스요약
- 파이썬
- 자바스크립트
- 자바스크립트 node
- 자바스크립트 element api
- 다크웹
- 보안뉴스한줄요약
- 보안뉴스 한줄요약
- numpy
- Oracle SQL
- 자바스크립트 jQuery
- 오라클
- ES6
- 랜섬웨어
- 자바스크립트 객체
- 카카오프로젝트 100
- Today
- Total
FU11M00N
7-6. bee-box 를 사용하여 SQL injection 알아보기! 본문
안녕하세요! 이번엔 sqli_3.php 페이지 SQL Injection (Login Form/Hero) 입니다!!
먼저 SQL 인젝션은 사용자가 입력한 값을 서버에서 제대로 검증을 하지 않아
서버에서 DB의 쿼리문으로 인식하여 DB안의 정보가 노출되거나 인증이 우회되는 취약점이다.
SQL 인젝션은 사용자가 데이터를 입력할 수 있는 곳 어디에서든 발생할 수 있고 이것을 이용해
SQL 쿼리를 변수에 입력을 하여 DB안의 정보를 탈취당 할 수가 있다.
SQL injection은 인젝션 부분에서도 가장 중요한 부분이고 잘 알아야 할 부분이다!
1. 레벨 low
음.. 뭔진 모르겠지만 우선 항상 결과 값을 참으로 만들어주는 쿼리문을 삽입해보겠습니다!
' or 1=1# 은 쿼리의 값을 참으로 만들어줍니다!! Password 필드에는 아무 값이나 집어 넣었습니다!!
오! 그럼 Neo 의 계정으로 로그인된것같습니다!!
Your secret : Oh why Didn't Took That BLACK Pill? 은 아마 비밀번호의 힌트..? 같은거 인것같습니다!
우선 비밀번호를 아무거나 집어넣었는데 로그인이 됐다는게 중요한 점인거같은데요, 왜 이렇게 됐는지 소스코드를 분석해보니,
데이터베이스에서 변수를 따로 입력안하고 둘이 같이 AND 연산자를 사용하여 한줄의 DB 아이디, 비밀번호을 출력하기때문에 발생하는 취약점입니다!
2. 레벨 High(대응방안)
사진 1-6에서 ' or 1=1 # 을 삽입하니 오류메세지가 뜹니다..
항상 그랬듯 소스코드를 봅시다!!
난이도 상은 sqli_check_2 로 우회되고있습니다!
그럼 functions_external.php 소스코드를 확인하여 제대로 확인해봅시다!!
sqli_check_2는 mysql_real_escape_string 함수를 사용하고 있었고 이 함수는 PHP에서 제공하는 기본적인 함수이다.
SQL 문법에서 사용하는 특수 문자가 있을 경우 백 슬래시를 붙여 입력 데이터를 SQL문법으로 인식하지 않게 방어하는 기법입니다. 우회할 수 있는 문자는 'NULL , \n , \r , \ , '등입니다. 즉 ' 가 안 먹히는 이유는 '를 삽입하면 실제 서버에서는
'\으로 우회되어 SQL 쿼리문으로 인식되지 않는 것입니다!
Reference by 비박스 환경을 활용한 웹 모의해킹 완벽 실습
'Web Hacking > bee-box' 카테고리의 다른 글
7-8. bee-box 를 사용하여 Blind SQL injection 알아보기! (0) | 2020.03.24 |
---|---|
7-7. bee-box 를 사용하여 SQL injection 알아보기! (0) | 2020.03.23 |
7-5. bee-box 를 사용하여 SQL injection 알아보기! (0) | 2020.03.23 |
7-4. bee-box 를 사용하여 SQL injection 알아보기! (0) | 2020.03.22 |
7-3. bee-box 를 사용하여 SQL injection 알아보기! (0) | 2020.03.22 |