Yozzang의 해킹일기 💻
article thumbnail
728x90

이번 포스트에서는 Lord of SQLInjection의 wolfman문제에 대해 다루도록 하겠다.

 


문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다.

wolfman

## 문제 해석 :

해당 문제는 preg_match() 함수를 통해 prob, _, ., (, )와 스페이스바를 필터링 한 것을 알 수 있다.

또한 id값이 admin이 되어야 문제를 해결할 수 있는 것으로 보인다.

 

## 문제 풀이 :

먼저 쿼리문을 참으로 만들어보겠다.

### 사용할 공격문 : pw='or'1

### 실행 결과

1차 시도

"Hello guest"가 출력된 것을 확인할 수 있다.

 

이어서 해당 쿼리문을 거짓으로 만든 다음에 id값이 admin이 되도록 만들어보겠다.

### 사용할 공격문 : pw='or id='admin

### 실행 결과 : 

2차 시도

예상했던 대로 스페이스바가 필터링이 된 것을 확인할 수 있다.

 

만약 스페이스바 하나가 필터링되면 스페이스바 두개를 입력하면 된다.

여기서 우리는 "Tab"을 사용하여 공격을 실행해보겠다.

참고로 Tab의 URL 인코딩 문자가 %09이다.

### 사용할 공격문 : pw='or%09id='admin

### 실행 결과 : 

공격 성공

## 추가 해석 :

SQL Injection에서 자주 사용될 공백 문자 우회는 다음과 같다.

공백 문자 우회법
\n (개행, 다음 줄) - %0a
\t (Tab) - %09
\r (개행, 줄의 맨 앞) - %0d
주석 활용 - /**/ ex) pw=1/**/or/**/id=admin
괄호 활용 - () ex) pw=(1)or(id=admin)
더하기 활용 - + ex) pw=1+or+id=admin
공백 대신 사용 - %0b
- %0c
- %a0

 

'Wargame > Lord of SQLInjection' 카테고리의 다른 글

Lord of SQLInjection (7. orge)  (0) 2022.05.20
Lord of SQLInjection (6. darkelf)  (0) 2022.05.19
Lord of SQLInjection (4. orc)  (0) 2022.05.17
Lord of SQLInjection (3. goblin)  (0) 2022.05.16
Lord of SQLInjection (2. cobolt)  (0) 2022.05.15
profile

Yozzang의 해킹일기 💻

@요짱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!