1. 식별, 인증 동시

- 식별 인증 동시란 SQL문에서 식별과 인증을 동시에 하는것을 말한다

- select * from login where id=$user_id and pw=$user_pw;

- 위 문구처럼 id와 pw를 동시에 처리하여 로그인 하는 방식이다

 

1) 공격 방법

- ID: john' or '1'='1#      pw: 아무거나

- 위 문구를 입력하게 되면 SQL문에서 다음과같이 처리된다

- select * from login where id=john' or '1'='1# and pw~~~

-  #뒤부터는 주석처리가 되어 문구가 실행되지 않는다

- 따라서 #앞에 'john' or '1'='1' 부분만 참이되면 되는데 1=1 부분이 참이므로 or연산에 따라 로그인 우회가 가능해진다

실제 화면

 

2. 식별, 인증 분리

- 식별 인증 분리란 SQL문에서 식별과 인증을 따로 처리하는 방식을 말한다

- 식별,인증 분리에서는 sql구문이 아닌 if($res[‘pw’]== $user_pw)문이 참이 되어야 로그인이 가능하다.

- select pw from login where id=$user_id;

if($res['pw']==$user_pw){

- 위 문구처럼 id를 입력받아 pw를 DB에서 가져오고 입력한pw와 DB의 pw가 일치하면 로그인이 되는 방식이다

 

1) 공격 방법

- ID: x' union select '1234    pw: 1234

- SELECT * FROM login WHERE id=’x’ union select ‘1234’

- 위 문구를 입력하면 SQL문에서 (~~WHERE id=‘x’)로 실제문구가 닫히게 된다.

- 그 뒤에 union select문이 실행되면서 DB에서 가져온 pw값과 password로 입력한 1234가 일치하는 계정이 있으면 if문이 참이 되어 그 계정으로 로그인을 우회 할 수 있게 된다.

실제화면

 

3. 식별, 인증 동시(해시)

- 식별 인증 동시(해시)란 위에서 봤던 식별 인증 동시와 다를게 없다

- 하지만 비밀번호가 해시 처리되어 비밀번호 유출시에도 그대로 유출 되지 않고 해시값이 유출된다는 점이 다르다

- select * from login where id=$user_id and pw=md5($user_pw);

 

1) 공격 방법

- 공격방법은 식별 인증 동시와 동일하게 하면 로그인 우회가 가능하다

실제 화면

 

4. 식별, 인증 분리(해시)

- 식별 인증 분리(해시)란 역시 식별 인증 분리 방식과 같은 구조이다

- 비밀번호만 해시처리 되어있다는 점이 다르다

 

1) 공격 방법

- 공격방법도 유사하지만 비밀번호가 해시처리되어있기 때문에 다음과 같이 입력해야 한다

- ID: x' union select md5('1234')'      pw:1234

- 위와 같이 입력해야 해시 처리된 비밀번호가 서로 대조가 가능해져 로그인 우회 할 수가 있다

실제 화면

 

5. 식별, 인증 개행

- select * from login where id=$user_id and

  pw=$user_pw

- 식별, 인증 개행이란 말 그대로 Enter를 눌러 개행하는 방식이다

- 이런 경우 주석처리가 통하지 않기 때문에 을 이용하여 구문을 맞춰줘야 한다

 

1) 공격 방법

- ID: john' or '1'='1     pw: 아무거나

- 공격 시 위와 같은 구문이 성공하는 이유는 and연산보다 or연산이 더 먼저 실행되기 때문에 and전에 or ‘1’=’1’부분이 참이 되므로 로그인 우회가 가능해진다

 

실제 화면

'Web Hacking' 카테고리의 다른 글

CSRF  (0) 2022.12.27
XSS  (0) 2022.12.16
Blind SQLi  (0) 2022.12.05
Error Based SQLi  (0) 2022.12.05
UNION Based SQLi  (0) 2022.11.21

+ Recent posts