[LOS] 2. cobolt
Web/Web Hacking (Wargame)

[LOS] 2. cobolt

728x90

source code

<?php
  include "./config.php"; 
  login_chk();
  $db = dbconnect();
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 
  $query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result['id'] == 'admin') solve("cobolt");
  elseif($result['id']) echo "<h2>Hello {$result['id']}<br>You are not admin :(</h2>"; 
  highlight_file(__FILE__); 
?>
  • 필터링되는 문자들은 앞 gremlin에서와 같다.
  • 마찬가지로 GET 방식으로 id와 pw를 받아오는데, 이 때 비밀번호(pw)는 md5로 암호화하는 것을 볼 수 있다.
    • md5는 128 byte 해시 암호화 함수로, 주로 프로그램과 파일이 원본과 달라지지 않았는지 검증하는 무결성 검사에서 자주 사용된다고 한다!
  • id 의 값이 admin일 때 문제를 해결할 수 있다.

solution

더보기

id=admin' %23

  • id의 값이 admin인지가 중요하기 때문에 id 값을 admin으로 넣고 작은 따옴표(')로 문자열을 닫아버린다.
  • 앞에서와 마찬가지로 %23(#)을 사용해 비밀번호 부분은 주석으로 날린다.
    • 비밀번호에 대한 검사로직은 따로 없기 때문에 비밀번호는 입력하지 않고 다 주석처리로 날려버린다.

SMALL

'Web > Web Hacking (Wargame)' 카테고리의 다른 글

[Dreamhack] Carve Party  (0) 2022.04.24
[HackCTF] hidden  (0) 2021.08.13
[HackCTF/Web] 1번. /  (0) 2021.08.09
[LOS] 3. goblin  (0) 2021.08.07
LOS Gremlin  (0) 2021.08.07