wargame/Lord Of SQL Injection

[LOS] chupacabra

LimeLee 2019. 7. 16. 10:33

소스코드 분석

<?php

include "./config.php";  
  login_chk();  
  $db = sqlite_open("./db/chupacabra.db");  
  $query = "select id from member where id='{$_GET[id]}' and pw='{$_GET[pw]}'";  
  echo "<hr>query : <strong>{$query}</strong><hr><br>";  
  $result = sqlite_fetch_array(sqlite_query($db,$query));  
  if($result['id'] == "admin") solve("chupacabra");  
  highlight_file(__FILE__);  
?>

1. sqlite_open("./db/chupacabra.db"); > DB 환경이 sqlite.

 

2. if($result['id'] == "admin") solve("chupacabra"); > admin이라는 값을 반환하게 하면 클리어.

 

3. $result['id'] == "admin" > sqlite 쿼리의 값을 문자열과 비교하므로 admin에 해당하는 id와 pw를 파라미터에 요청할 필요 없이 인증우회로도 OK.

 

문제 풀이

신규로 풀린 문제들의 컨셉은 SQLI를 공부할 때 자주 사용하는 MYSQL외의 DB환경에서의 SQLI를 연습해보기 위한 문제로 난이도 자체는 어렵지 않다.

 

cobolt 문제의 sqlite 버전으로 pw를 모르는 "admin"값을 단순 인증우회하여 파라미터는 다음과 같이 요청한다.

 

?id=admin'-- - 

 

 

'wargame > Lord Of SQL Injection' 카테고리의 다른 글

[LOS] banshee  (0) 2019.07.17
[LOS] manticore  (0) 2019.07.17
[LOS] cyclops  (0) 2019.05.10
[LOS] godzilla  (0) 2019.05.10
[LOS] death  (0) 2019.05.10