Today I Learned …
[Lord of SQL Injection] 2번 cobolt 풀이 본문
* 워게임 풀이 과정을 기록합니다.
사담
백신 2차 때문인지... 너무 피곤하다...
보고서도 써야하는데 큰일...ㅠ
오늘은 정말 간단히!! 2번 문제 cobolt를 다뤄볼까 한다.
이전 문제
https://choco4study.tistory.com/49
2번 문제 cobolt 분석
2번 문제는 다음과 같다.
저번 문제에서 이미 다뤘던 preg_match()가 반겨준다.
달라진 점은 없다.
이번에도 역시 필터링 문제는 없을 것 같다.
그 아래 쿼리문을 보겠다.
$query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
prob_cobolt에 저장된 사용자의 비밀번호는 해싱되어있다는 것을 유추할 수 있다.
id 값과 pw 값의 해시값이 동시에 일치하는 레코드의 id를 뽑아오는 구조다.
일단 아래로 넘어간다.
if($result['id'] == 'admin') solve("cobolt");
elseif($result['id']) echo "<h2>Hello {$result['id']}<br>You are not admin :(</h2>";
뽑아온 id 값이 admin인 경우에만 문제가 풀린다는 것을 알 수 있다.
2번 문제 cobolt 풀이
위 분석의 결론에 따르면,
그냥 admin 계정으로 로그인해주면 될 것 같다.
위에서 pw의 해시값을 쓰는 것을 보고 잠깐 멈칫했으나,
어차피 #을 필터링하고 있지 않기 때문에 아이디 뒷부분을 주석 처리해주면 간단히 풀릴 것 같다.
admin' #
를 입력하면 될 것 같은데,
저번 문제에서 언급했다시피 #은 %23으로 대체해서 입력해준다.
엔터를 쳐보면!
두번째 문제가 풀렸다!
아직까지는 단순한데... 앞으로는 어떤 문제들이 기다리고 있을지 기대가 된다.
너무 간단하지만, 오늘은 더 이상 무리일 것 같아서... 끝!
'Wargame > Lord of SQL Injection' 카테고리의 다른 글
[Lord of SQL Injection] 6번 darkelf 풀이 (0) | 2021.12.07 |
---|---|
[Lord of SQL Injection] 5번 wolfman 풀이 (0) | 2021.12.06 |
[Lord of SQL Injection] 4번 orc 풀이 + Blind SQLi 자동화 Python 코드 (0) | 2021.12.05 |
[Lord of SQL Injection] 3번 goblin 풀이 (0) | 2021.12.03 |
[Lord of SQL Injection] 1번 gremlin 풀이 (0) | 2021.10.29 |
Comments