일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- jQuery
- 사칙연산
- xss game 풀이
- 조건문
- 자바스크립트
- document
- 파이썬
- Pwndbg
- 배열
- python
- github
- lord of sql injection
- 메소드
- blind sql injection
- property
- window
- 백준 알고리즘
- 김성엽 대표님
- htmlspecialchars
- 함수
- element 조회
- 포인터
- burp suite
- xss game
- 백준 파이썬
- suninatas 풀이
- IF문
- object
- sql injection
- 객체
Archives
- Today
- Total
power-girl0-0
[ webhacking.kr-old ] 4번 본문
728x90
주소 : https://webhacking.kr/old.php
[ 풀이 ]
깜깜한 화면 드응장~~!
password값을 입력할 때마다, 위의 난수값(?)이 계속 변경된다.
view-source를 클릭하여, 소스코드를 살펴보자.
소스코드를 살펴보면, chall4의 세션값과 입력받아오는 key변수의 값이 같으면 풀리는 것으로 되어있다.
하지만, 여기서 chall4 센션값 안에는 hash변수가 들어가 있는 것을 확인할 수 있다.
위 코드를 집중적으로 살펴보면, $hash에는 1000000부터 99999999까지의 랜덤값+salt_for_you가 들어있으며,
이를 sha1을 활용하여, 500번 암호화하고 있는 것을 볼 수 있다.
위 코드를 보면, 문제가 출력되어 있던 페이지에서 난수값은 sha1로 500번 암호화한 hash값을 출력하고 있는 것으로 확인할 수 있다.
즉, 우리는 sha1로 500번 암호화하기 전인 1000000부터 99999999까지의 랜덤값+salt_for_you의 랜덤값을 추측하여 입력했으시 풀리는 문제로 예상된다.
이는 레인보우 테이블을 활용한 문제로 예상된다.ㅠ_ㅠ
본 글 작성자는 간단하게 python으로 무차별 공격을 해볼 예정이다.
코드는 아래와 같다.
import hashlib
ans = "bf2aee3086ff227752afe66d4298552b2076a798"
for i in range(10000000,99999999+1):
hash = (str(i)+"salt_for_you")
for j in range(500):
ans2 = hashlib.sha1(hash.encode()).hexdigest()
if(ans == ans2):
print("flag : {}".format(hash))
break
컴퓨터가,,,, 아파한 문제였다 ㅎ_ㅎ,,,,
문제 클리어 ~_~
728x90
'War game > webhacking.kr' 카테고리의 다른 글
[webhacking.kr-old] 6번 (0) | 2021.06.19 |
---|---|
[webhacking.kr-old] 5번 (0) | 2021.06.19 |
[webhacking.kr-old] 3번 (0) | 2021.06.18 |
[webhacking.kr - old] 2번 (0) | 2021.06.10 |
[webhacking.kr - old] 1번 (0) | 2021.06.10 |
Comments