$ 웹 해킹 $/webhacking.kr
[Renewal] webhacking.kr old-4 [300]
ws1004
2019. 12. 5. 10:55
문제를 확인해 보면 아래와 같이 해시 값처럼 보이는 데이터가 눈에 보입니다.
소스코드를 확인해 보겠습니다.
중요한 부분인 php 코드 부분을 확인해 보면 아래와 같습니다.
안티 브루트포스를 위해서 sleep 을 걸어두었습니다.
그리고 rand함수로 출력되는 "어떠한 수"salt_for_you 라는 값이 $hash에 들어가는데 우리가 화면에서 볼수 있는 녹색의 문자열이 hash값 이라는 것을 알 수 있는데 아래를 보면 for문으로 500번 sha1 함수를 이용해서 돌리게 됩니다.
그래서 저희가 해야하는 것은 녹색의 문자열을 sha1로 500번 복호화를 했을때 나오는 "어떤 랜덤 값"salt_for_you 을 찾는 것입니다. 하지만 거의 불가능에 가깝다고 생각이 들었고 Anti brute force 가 있기 때문에 직접 해당 코드를 제작 후, rand값이 10000000 일때부터 1씩 키워가면서 500번 암호화한 해시값을 일렬로 나열한 테이블을 제작했습니다.
ex) 20141413salt_for_you : 761b01832363c07a6e547e132d53a5d5daf7cc27
너무 시간이 오래걸려서 몇천만 정도 까지만 하고 grep 를 이용해서 테이블에 존재하는 해시값이 나올 때 Clear를 했습니다.
20141413salt_for_you : 761b01832363c07a6e547e132d53a5d5daf7cc27 라는 값이 딱맞아 떨어져서 Password에 20141413salt_for_you 를 입력 했습니다.