문제를 봅시다.
계속 바뀌는 코드가 주어지고, password를 입력해서 제출해야 하는 문제이다.
Post 방식으로 입력된 key 라는 변수의 값과,(아마 pw 제출이겠지)
Session 변수중 chall4의 값이 같으면 해결되는 문제이다.
hash 변수는 10000000 에서 99999999 까지
한숫자를 고르고, 그 뒤에 salt_for_you 라는 문자열을 붙이는 것이다.
Session['chall4']의 값은 hash 변수의 값이다.
또 sha1으로 500번 hash 변수를 해슁해주면 그게 최종적인 hash 변수의 값이다.
그리고 그 hash 변수를출력한게 화면에 나오는 값이다.
random 숫자와 문자열을 붙인 값이 필요한 것이다. 문자열 값은 아니까 random 숫자만 파악해 볼수 있도록 하면 좋을듯
- python code로 sha1 decode 해주는 함수가 있으면 for문 500번 돌려서, 9~20 번째 문자열이 salt_for_you면 그걸 답으로 채택하도록.
- decode 해주는 함수가 없다면,bruteforce해서 sha1을 500번 해준 값과 문제의 hash 값을 비교하는 방법이다. 너무 노가단데,,,,
python 파일 10개 동시에 돌려봤다. 한 2시간정도 걸릴꺼같다
- 마지막으로 생각해볼 수 있는 방법은 없다 대가리가 나쁜건지 모르겠지만 2번을 해보자
hashlib 설치중에 에러가 발생했다. frozenset object is not callable 이라는 에러였는데,
rm /usr/lib/python2.7/lib-dynload/_hashlib.x86_64-linux-gnu.so
해주고 해결했다.
윈도우에서는 아직 어떻게 하는건지 모르겠지만,,,,,
일단 돌리는동안 효율적인 것을 찾아보면, 딱히 없는거같다.
4시간? 5시간정도 돌려서 답을 찾았다
FOR RANDOM 77776560 : SHA1 HASH IS COMPELETE
FOR RANDOM 77776561 : SHA1 HASH IS COMPELETE
FOR RANDOM 77776562 : SHA1 HASH IS COMPELETE
GOT THE RANDOM NUMBER : 77776562
Process finished with exit code 0
근데 세션이 만료되어서 팅겼다.
세션 유지할 방법을 찾아봐야겠다.
굳이 세션을 유지할 필요가 없다.
기존 코드는 한 해쉬에 대해서 값을찾는 것이여서 한 해쉬문자열당 시간이 오래 걸린 것이고, 아예 코드북을 만들어버리면 해결될 일이다.
해결 완료..!
'WriteUp > Webhacking.kr' 카테고리의 다른 글
webhacking.kr : challenge 6 (0) | 2020.09.11 |
---|---|
webhacking.kr : challenge 5 (0) | 2020.09.11 |
challenge 57 (600pt) (0) | 2020.08.15 |
Challenge 18 (100pt) (0) | 2020.05.10 |
Challenge 26 (100pt) (0) | 2020.05.10 |