728x90
.htaccess 을 크랙하라는데,,, bruteforce을 이용한다?!
(해당 문제는 참고를 하여 문제를 풀었습니다..!)
G4HeulB 문자열로 시작하는 글자를 찾는거 같다,,,!
.htpasswd 을 다운 받으면 아래 문구가 적혀있다..
blueh4g:$1$VH6/fWZp$mWttF/M8/X8s8RgZ.pWrS/ |
.htpasswd 파일 포맷을 정리해보자
blueh4g : 계정 이름
$1 : 해시 알고리즘 종류
($1 //MD5 알고리즘 (128bit), $5 //SHA-256(256bit), $6 //SHA-512(512bit) )
$VH6/fWZp : 솔트 값
$mWttF/M8/X8s8RgZ.pWrS/ : 해시된 패스워드
이를 이용해 브루트포스 공격을 통해 주어진 해시된 패스워드값이 나오는 평문 패스워드를 찾는것이다.!!
* 파이썬의 hashlib 는 사용 불가,, 리눅스의 MD5해시값을 구할 수 없기 때문에 -> passlib.hash 라이브러리 사용
import string
from itertools import product
str = string.ascii_letters + string.digits
for len in range(1, 10):
to_attempt = product(str, repeat=len)
for attempt in to_attempt:
brute = "".join(attempt)
print(brute)
기본적인 brute Force 문자열 생성하는 코드이다.
이 코드를 응용해서 사용하면 된다.
from passlib.hash import md5_crypt // pip3 install passlib 설치해야함
import string
from itertools import product
passwd_section = "G4HeulB"
salt = "kfi/mcxb"
hash_passwd = "LKczByXp5WCmmZX/Vjn.E1"
str = string.ascii_letters + string.digits
for len in range(1, 10):
to_attempt = product(str, repeat=len)
for attempt in to_attempt:
brute = "".join(attempt) // Brute Force 조합 만든거
// 여기부터 가능한 문자열의 조합을 하나씩 대입하여 주어진 패스워드의 해시값과 동일한지 비교
passwd = passwd_section + brute
shadow_passwd = md5_crypt.using(salt=salt).hash(passwd)
cryted_passwd = shadow_passwd.split("$")[3]
if cryted_passwd == hash_passwd:
print("cryted_passwd : ", passwd, " hash : ", cryted_passwd)
break
'모의해킹 > Dreamhack' 카테고리의 다른 글
Client Side Template Injection (0) | 2023.11.25 |
---|---|
CSP Bypass (0) | 2023.11.23 |
[wargame.kr] dun worry about the vase (0) | 2023.11.18 |
crawling (0) | 2023.11.15 |
Tomcat Manager (0) | 2023.11.14 |