Hashish
아래 함수 결과에 해당하는 결과 값을 파일로 제공해 준다.
__int64 __fastcall genhash(char *input)
{
unsigned int v1; // eax
char *v2; // rax
__int64 input_byte; // rax
char *v4; // [rsp+8h] [rbp-18h]
unsigned int count; // [rsp+14h] [rbp-Ch]
signed __int64 v6; // [rsp+18h] [rbp-8h]
v4 = input;
v6 = 13LL;
count = 0;
while ( 1 )
{
v2 = v4++;
input_byte = (unsigned int)*v2;
if ( !(_DWORD)input_byte )
break;
v6 = 3 * v6 + (signed int)input_byte;
v1 = count++;
printf("hash-%d : %ld\n", v1, v6);
}
return input_byte;
}
hash.txt
hash-0 : 138
hash-1 : 512
hash-2 : 1645
hash-3 : 5034
hash-4 : 15218
hash-5 : 45756
hash-6 : 137391
hash-7 : 412292
hash-8 : 1236927
hash-9 : 3710845
hash-10 : 11132642
hash-11 : 33398021
hash-12 : 100194167
hash-13 : 300582553
hash-14 : 901747774
hash-15 : 2705243426
hash-16 : 8115730373
hash-17 : 24347191171
hash-18 : 73041573621
hash-19 : 219124720917
hash-20 : 657374162799
hash-21 : 1972122488522
hash-22 : 5916367465576
Long road
cool[넘버] 페이지 Brute Force해주면 플래그 나오는 페이지가 있다.
In mountains I feel fresh
페이지 요청할때 마다 세션값이 다시 세팅되는데 이거 파싱해서 다음 페이지 요청할때 세션 값 재 세팅해주는 식으로 Brute Force 해주면 된다.
solve.py
import requests
def request(cookie):
url = "http://cbmctf2019.cf:5001/"
headers = {'Cookie': 'session=' + cookie}
response = requests.get(url, headers=headers)
if "cbmctf" in response.text:
print response.text
return response.headers['Set-Cookie'].replace("session=","").replace("; HttpOnly; Path=/","")
cookie = "eyJ2aXNpdHMiOjUwfQ.XKn_Hg.nLw94DRaPh2xkEeMUuApvcihnBo"
for i in range(0,1000):
cookie = request(cookie)
print cookie
'CTF > Writeup' 카테고리의 다른 글
Byte Bandits CTF 2019 Web Writeup (0) | 2019.04.14 |
---|---|
Midnight Sun CTF 2019 Quals Rubenscube (0) | 2019.04.08 |
Midnightsun CTF 2019 Marcodowno (0) | 2019.04.07 |
Radar CTF 2019 Inj3c7 (0) | 2019.04.05 |
Encrypt CTF 2019 Write up (0) | 2019.04.05 |