Hash

webhacking.kr

[webhacking.kr] old-22

문제분석 & 풀이admin으로 로그인을 하라는 미션이 주어진다. join을 통해 계정을 생성할 수 있다.  guest / guest 으로 계정을 생성하고 로그인을 해보자. [그림]처럼 pw가 해싱된 상태로 출력된다. 해싱된 pw 길이는 32자리로 MD5로 해싱됐다고 추측할 수 있다. MD5가 맞는지 확인해보기 위해서 "guest"를 MD5로 해싱해서 값을 비교했다.  하지만 결과는 달랐다. "guest" + salt → 암호값아마도 단순하게 "guest"를 해싱한게 아니라 salt 값이 추가된 상태로 해싱된 것 같다. 해싱 결과를 복호화하려면 레인보우 테이블을 이용하는 방법 밖에 없다. ○ 레인보우 테이블특정 알고리즘(ex. MD5)에 대한 평문과 암호문을 테이블 형태로 모두 기록해서 암호문에서 평문으로..

webhacking.kr

[webhacking.kr] old-04 (rainbow table)

문제풀이40자리 해시가 있고 password를 입력해서 제출하는 구성이다. 새로고침을 할 때마다 해시값이 바뀌는 것을 확인할 수 있다. 조건에 맞는 password를 입력하면 문제가 해결되는 것 같다. 코드를 분석해보자. 1) key(password)가 chall4 세션과 동일하면 문제가 해결된다.2) [10000000~99999999 사이 랜덤값] + "salt_for_you"을 $hash 변수에 저장하고 chall4 세션에 저장한다.3) $hash를 500번 sha1 해싱하고 결과를 화면에 출력한다. 정리하면, 처음에 화면에 출력된 40자리 해시는 500번 해싱한 결과다. 이 값을 이용해서 500번 해싱하기 전의 값인 평문을 알아내야 하는 문제이다. 쉽게 말하면 역으로 복호화해서 값을 알아내야 한다...

keyme
'Hash' 태그의 글 목록