다음으로 우리는 반기는 몬스터는 cobolt이다. 바로 코드로 넘어가자로 우리는 반기는 몬스터는 cobolt이다. 바로 코드로 넘어가자
코드
알고 있는 부분은 빠르게 넘어가고 이번에 못쓰는 문자열은 다음과 같다.
prob, _(언더바),.(점), \(역 슬래쉬)
이점은 Level 1이랑 다른 게 없어 보인다. 쿼리를 보자
$query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')";
으흠; 이번에 는 id에 해당하는 pw를 md5를 이용해서 해싱하고 해싱 값을 비교한다.
* 여담인데, DB를 다뤄본 분들은 아시겠지만, 비밀번호는 일방향으로 암호화, 생체정보는 양방향 암호화하는 것이 현재 개인정보보호법의 기준이다. 물론 md5같이 충돌이 발견된 불안정한 알고리즘으로 하면 안 된다.
눈치 빠른 독자들은 눈치를 챘을지도 모르지만, cobolt의 코드에는 저번 gremlin의 코드의 Injection이 유효하다.
다음을 입력해보자
Answer URL? : los.rubiya.kr/chall/XXX.php?id=admin%27%20or%201=1--%20;
응? 우리 보고 admin이 아니라 rubiya란다. 즉 이번에는 admin으로 접근을 해야 되는 걸 알 수 있다.
* 사실 아래 if($result ['id']='admin')을 비교하고 아니면 위와 같은 화면을 출력하게 코드가 짜여있다.
해결방법
Answer URL : los.rubiya.kr/chall/XXX.php?id=admin%27%--%20;
아니 이렇게 간단할 수가; 맞다 우리 보고 admin계정의 존재는 알려주었으니까 그냥 admin을 가져오라고 query를 하고, query를 작은따옴표(')로 닫아버리면 끝이다.
이렇게 Lord of SQL Injection의 두 번째 몬스터인 코볼트 사냥에 성공하였다. 상황상황에 따라 필요한 정보를 빼오는 맛이 SQL Injectino엔 있다. 흥미를 잃지 않았기를 바라면서 다음 관문에서 여러분을 기다리겠다.
'WarGame > Lord of SQL Injection' 카테고리의 다른 글
[LOSI] Lord of SQL Injection Level 5 - Wolfman (0) | 2021.04.13 |
---|---|
[LOSI] Lord of SQL Injection Level 4 - Orc (0) | 2021.04.13 |
[LOSI] Lord of SQL Injection Level 3 - Goblin (0) | 2021.04.12 |
[LOSI] Lord of SQL Injection Level 1 - Gremlin (0) | 2021.04.12 |
[LOSI] Lord of SQL Injection 문제풀이 포스팅을 시작하며 (0) | 2021.04.12 |