[Lord of SQL Injection] cobolt 2번 풀이
[ 문제접근 ]
1. 쿼리 : id와 pw파라미터가 존재하고 pw를 md5 암호화, 이를 통해 DB를 조회한다
2. $_GET[id], md5('{$_GET[pw]}') : GET방식을 통해서 id와 pw를 입력받고 pw는 md5암호화
3. if($result['id'] == 'admin') : 쿼리문 질의 결과의 id가 admin일 경우 solve 시켜준다
> 방법 1) md5를 우회해서 입력
> 방법 2) id에서 admin을 입력 후 주석처리하여 뒤에 존재하는 조건을 무시
[ 문제풀이 ]
<정답1> : ?id=admin%27%23
정답1은 주석을 활용한 방법이다. ?id=admin'# admin뒤에 '를 붙여 문자열을 탈출하고 #을 적어줌으로써 뒤에 존재하는 쿼리를 모두 주석처리할 수 있다. 하지만 ?id=admin'# 이 구문을 그대로 입력하면 Clear가 나오지 않는다.
그 이유는 #주석과 같은 것들은 URL상에서 다양한 문제점을 일으킬 수 있기 때문에 반드시 URL인코딩을 진행한 후 값을 넣어주어야 한다.
- 오라클 주석 : #
- MYSQL 주석 : --
* URL에서 입력불가능한 값 : ?, &, #
* URL 인코딩은 필터링 우회 기법 중 하나가 될 수 있다! *

<정답2> : ?pw=1') or id=('admin
정답2는 1번 문제에서와 같이 형식을 지켜주면서 조건을 우회하고 항상 결과가 admin인 조건을 만들어 주었다.

"COBOLT Clear!" 가 나타난다! 정답!
이제 다음 스테이지로 넘어가도록 하자
'WarGame > Lord of SQL Injection' 카테고리의 다른 글
[Lord of SQL Injection] darkelf 6번 풀이 (0) | 2021.10.12 |
---|---|
[Lord of SQL Injection] wolfman 5번 풀이 (0) | 2021.10.12 |
[Lord of SQL Injection] orc 4번 풀이 (0) | 2021.10.10 |
[Lord of SQL Injection] goblin 3번 풀이 (0) | 2021.10.10 |
[Lord of SQL Injection] gremlin 1번 풀이 (0) | 2021.10.10 |
댓글
이 글 공유하기
다른 글
-
[Lord of SQL Injection] wolfman 5번 풀이
[Lord of SQL Injection] wolfman 5번 풀이
2021.10.12 -
[Lord of SQL Injection] orc 4번 풀이
[Lord of SQL Injection] orc 4번 풀이
2021.10.10 -
[Lord of SQL Injection] goblin 3번 풀이
[Lord of SQL Injection] goblin 3번 풀이
2021.10.10 -
[Lord of SQL Injection] gremlin 1번 풀이
[Lord of SQL Injection] gremlin 1번 풀이
2021.10.10