4번 문제에요.
배점은 300점, 분야는 컴퓨팅 문제같네요.
이상한 16진수와 함께 Password 입력창, 소스보기 버튼이 있네요.
소스를 보니 대충 저기 보이는 16진수 문자열은
10000000~99999999 랜덤 숫자 + salt_for_you
의 sha1 해시값의 sha1 해시값의...
해서 500번 돌린 값을 보여주는 건가보네요.
SHA1를 복호화 시킬수는 없으니 저기에 보이는 해시값을 보고 비밀번호를 찾아내야하는 문제인가봐요.
그렇다는건 레인보우 테이블을 만들어서 풀어야 하겠군요!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import sha1 from "sha1"; import fs from "fs";
for(var i:number = 10000000; i <= 99999999; i++) { var str: string = i + "salt_for_you"; var hash: string = str;
for(var i2: number = 0; i2 < 500; i2++) hash = sha1(hash);
fs.writeFileSync("./table.table", str + " " + hash + "\n", {encoding: "utf-8", flag: "a+"});
}
console.log("끝"); |
cs |
typescript를 이용해서 레인보우 테이블을 만드는 스크립트를 만들었어요.
이제 이걸 돌리고 며칠 자고 일어나보면 테이블이 완성되어 있을거에요.
테이블이 완성됬으면 값을 찾아야겠죠?
보여지는 해시값은
1285a5433e6f98b99b2ca24421cd1ba14ecbb004
이니 이걸 테이블에서 찾아보면?
81183343salt_for_you .
이제 이걸 입력해보면?
빠밤!
문제가 풀렸네요.
고생한 컴퓨터에게 박수를...
'연구글 > webhacking.kr' 카테고리의 다른 글
webhacking.kr Challenge(old) 6 / Computing (0) | 2020.08.20 |
---|---|
webhacking.kr Challenge(old) 5 / DB (0) | 2020.08.20 |
webhacking.kr Challenge(old) 3 / DB (0) | 2020.08.20 |
webhacking.kr Challenge(old) 2 / DB (0) | 2020.08.20 |
webhacking.kr Challenge(old) 1 / PHP (1) | 2020.08.20 |