728x90
이번 포스트에서는 Lord of SQLInjection의 cobolt 문제에 대해 다루겠다.
문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다.
## 문제 해석 :
해당 문제는 이전 문제인 gremlin과 비슷하니 다른 부분만 짚어서 보겠다.
여기서 우리가 주목해야 할 부분이 if($result['id'] == 'admin')이다
위 코드를 통해 우리는 admin이라는 ID로 로그인해야 문제를 풀 수 있는 것을 알 수 있다.
## 문제 풀이 :
- ID란에 admin을 추가한다.
- SQL 쿼리문이 참이 될 수 있도록 해준다.
### 사용할 공격문 : id='admin'or'1&pw=
### 실행 결과 :
## 추가 해석 :
쿼리문 : select id from prob_cobolt where id = ''admin'or'1' and pw=md5('')
OR연산자는 AND연산자보다 늦게 처리되므로 다음과 같이 OR연산자 기준으로 조건을 두개로 나뉠 수 있다.
*** id = 'admin' or '1' and pw=md5('') ***
or 연산자의 왼쪽 부분인 ID부분은 항상 참이기때문에 해당 쿼리문은 참인 것을 알 수 있다.(admin이라는 ID가 prob_cobolt라는 데이터베이스에 존재하기 때문에)
'Wargame > Lord of SQLInjection' 카테고리의 다른 글
Lord of SQLInjection (6. darkelf) (0) | 2022.05.19 |
---|---|
Lord of SQLInjection (5. wolfman) (0) | 2022.05.18 |
Lord of SQLInjection (4. orc) (0) | 2022.05.17 |
Lord of SQLInjection (3. goblin) (0) | 2022.05.16 |
Lord of SQLInjection (1. gremlin) (0) | 2022.05.14 |