LoSi

2_LoSi_cobolt

duduranran 2022. 11. 22. 22:29

두번째 문제_cobolt

<?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과 크게 다르지 않다.

조금 다른 점이 있다면 입력받은 pw를 md5()로 해시화 하고 있고, 

질의한 쿼리문의 결과에서 id값이 admin이어야 한다는 것.

 

식별&인증은 동시에 하고 있기 때문에 

id의 값에 admin을 넣어주고 뒷부분을 주석으로 날려버리자.

 

역시 해당 페이지 주소창 가장 뒤에 "?id=admin%27%23" 넣어주니 클리어!!

 

cobolt

'LoSi' 카테고리의 다른 글

6_LoSi_darkelf  (0) 2022.11.23
5_LoSi_wolfman with whitespace 우회  (0) 2022.11.23
4_LoSi_orc with addslashes() / substr()  (1) 2022.11.23
3_LoSi_goblin  (0) 2022.11.22
1_LoSi_gremlin  (0) 2022.11.22