power-girl0-0

Blind SQL Injection 본문

웹해킹

Blind SQL Injection

power-girl0-0 2020. 3. 3. 16:45
728x90

안녕하세요-!!

오늘은 Blind SQL Injection에 대해서 알아볼까 합니다ㅎㅎㅎ

다같이 출발~~!!

 

잠깐-!! 그전에 SQL Injection에 대해서 간단히 알고 시작하도록 하겠습니다.

 

SQL Injection은 악이적 사용자가 보안의 취약점을 이용하여 임의의 SQL문을 주입시키고 실행시켜 DB가 비정상적인 동작을 하도록 조작하는 것입니다-!!

다음 공격은 OWASP Top10 중 첫번째에 속하지만 공격이 비교적 쉽습니다.

따라서 공격 성공시 많은 피해를 입을 수 있는 공격입니다.

 

 

 

이제 진짜로 Blind SQL Injection을 시작합니다~~!!

먼저, Blind SQL Injection에 대해서 알아보도록 하겠습니다_!!

데이터베이스로부터 특정한 값이나 데이터를 받지 않고, 단순하게 참과 거짓의 정보만 알 수 있을 때 이것을 이요하여 DB정보를 취득하고자 하는 기법입니다.

 

두번째로, Blind SQL Injection이 언제 사용되는지에 대해서 알아보도록 하겠습니다.

 Blind SQL Injection 사용될 때

1) 500번대 : 에러가 표시되지 않을 때

2) sql쿼리문이 삽입되는 입력값에 적절한 필터링이 이루어지지 않았을 때

 



다음으로는, Blind SQL Injection 이용하여 값을 찾아내는 방법입니다-!

 Blind SQL Injection을 이용한 공격

① 'or 1=1 (참)과 'or 1=2#(거짓)을 넣어 참과 거짓의 값을 찾습니다.

② 함수를 이용하여 값을 찾아냅니다.

     1) substr : 문자열, 문자를 찾아낼 수 있는 함수

         => substr(문자열, 문자열에서 자르고자하는 문자열의 처음 위치, 자르고자 하는 문자길이)      

     2) length : 개수를 찾아낼 수 있는 함수

     3) limit : 출력하고 싶은 행과 행의 갯수를 찾아낼 수 있는 함수

         => limit (실행할 행의 번호, 실행할 행의 갯수)  또는 limit(실행할 행의 갯수)

     4) ascii : 정수를 ascii코드로 반환하는 함수

 


마지막으로, Blind SQL Injection 해결방안입니다-!!

▶ 해결방안

: 특수문자를 필터링하는 것 입니다!!

 

1) url 인코딩 (%아스키코드사용)

     ex) Hello World를 %아스키코드로 바꿔서 URL을 출력해줍니다.

2) str_replace 

     - 문자열 안에서의 위치를 기준으로 특정 부분의 문자를 치환(바꾸기)해줍니다.   

3) htmlspecialchars

     - 특수 문자를 HTML 엔티티로 변환합니다.

더보기
대표적인 예시

4) mysql_real_escape_string

     - 특수 문자열을 이스케이프하여 필터링해줍니다.

5) preg_match

     -입력받은 문자열에 대해서 정규식 패턴이 존재하는지 안하는지 수행해줍니다.

 

이상으로 Blind SQL Injection에 대해 알아보았습니다.

조금 이해가 되셨나요?ㅎㅎ

다음에는 더 알찬 지식보따리로 다시 찾아오겠습니다~~

안뇽~~~!!

728x90
Comments