Challenge 22 시작!!
admin 으로 로그인 해야 하는 문제이다.
join 을 눌러 admin 으로 회원가입을 시도해봤지만 이미 존재한다고 되어있다.
그래서 일단은 guest /1234 라는 계정을 만들었다. 그리고 나서 로그인하니 다음과 같은 문장이 출력되었다.
해시 길이가 32자리 인걸 보니 MD5 이다.
복호화 사이트를 통해 복호화해보니 1234apple 가 나왔다.
apple 이라는 salt 값을 이용하여 암호화 하고 있었다.
그럼 이제 Blind SQL Injection 을 통해 암호화 된 admin의 pw 를 알아내보자!
일단 post 방식이어서 url 말고 입력창에서 여러 값들을 입력해보았다.
그 결과는 다음과 같다.
- 참일 경우 ( ex) admin' and 1 # )
- 거짓일 경우 ( ex) admin' and 0 # )
참, 거짓을 구별할 수 있는 출력값을 확인했기 때문에 if() 함수를 통해 pw 를 알아낼 수 있다.
pw 를 알아내는 Python 코드를 작성하였다.
length() 함수로 길이를 알아냈고 ord() 와 substr() 함수를 통해 패스워드의 각 자리값을 알아냈다.
역시나 MD5 로 암호화 되어 있기 때문에 32 자리였다.
암호화된 패스워드를 복호화하니 wowapple 이라는 결과가 나왔다.
apple 을 빼주면 패스워드는 wow 일 것이다.
성공!!
'WarGame > webhacking.kr' 카테고리의 다른 글
Challenge 24 (0) | 2020.02.26 |
---|---|
Challenge 23 (0) | 2020.02.26 |
Challenge 21 (0) | 2020.02.26 |
Challenge 20 (0) | 2020.02.25 |
Challenge 19 (0) | 2020.02.25 |