Yozzang의 해킹일기 💻
article thumbnail
728x90

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

 


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

dragon

## 문제 해석 : 

해당 문제는 preg_match() 함수를 통해 prob, _, ., (, )를 필터링하고 있다는 것과 guest뒤에 #(주석문자)이 붙어 있다는 것을 알 수 있다.

또한 id의 값이 "admin"일때만 문제를 해결할 수 있는 것으로 보인다.

## 문제 풀이 : 

해당 문자는 #(주석)을 통해 뒤에 오는 값을 무효화처리 하고 있다.

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

### 실행 결과 : 

1차 시도

출력된 값이 변경되지 않는 것을 확인할 수 있다.

 

그러나 "#"문자는 "1 Line", 즉 한줄 주석 처리이기 때문에 개행 문자인 "%0a"를 통해 우회하여 공격할 수 있다.

### 사용할 공격문 : pw='%0a and 0 or id='admin

### 실행 결과 : 

공격 성공

## 추가 해석 :

쿼리문 : pw='%0a and 0 or id='admin'

개행문자 %0a를 통해 개행하여 #주석을 우회한 다음에, 이전의 쿼리를 "and 0"을 통해 False로 만들고, id값 "admin"을 불러오면 된다.

profile

Yozzang의 해킹일기 💻

@요짱

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