[DreamHack] rev-basic-3
메모리에 있는 값과 (i xor 입력한 문자) + i*2비교 한다. 따라서 그냥 역연산하면 flag를 얻을 수 있다. (메모리에 있는 값 - i*2) xor i
메모리에 있는 값과 (i xor 입력한 문자) + i*2비교 한다. 따라서 그냥 역연산하면 flag를 얻을 수 있다. (메모리에 있는 값 - i*2) xor i
Source Code into Compare_str() &aC에 저장된 문자열과 a1(사용자 입력 값)을 하나씩 비교 &aC에 저장된 값을 확인 Clear;
0번 문제와 동일하다. 입력 문자를 비교하는 부분으로 가보자. 입력한 문자열을 하나씩 읽어와서 비교한다. Clear;
3가지 페이지가 존재하는 사이트가 나온다. 각각의 페이지에 대한 소스코드를 확인해본다. xss 특별한 것은 없지만, 필터링이 없어 xss가 가능한 페이지 memo 특정 문자에 대한 필터링이 존재하며, 아래 그림처럼 hello를 출력한다. flag GET으로 날릴경우 그냥 return해버리고, POST로 데이터를 보낼 경우 read_url함수를 통해 FLAG를 얻을 수 있다. read_url함수를 보면, FLAG가 포함된 쿠키를 생성하여 적용시킨다. 따라서 해당 쿠키를 얻어오면 문제를 풀 수 있다. Solve read_url 함수는 쿠키가 생성되고, 입력한 url를 참조한다. 따라서, 쿠키의 탈취가 가능하다. memo페이지는 전송한 파라메터 값을 그대로 출력해주는 페이지이다. 따라서, 해당 페이지 파라메터..
사진처럼 특정 메모를 업로드 할 수 있는 사이트가 제공된다. 메모를 업로드하면 제목과 내용이 표시된다. 소스코드를 확인해보자. 업로드 부분의 코드를 먼저 확인해보자. 특정 문자를 필터링하는 것으로 보아 내용을 업로드하는 부분에서는 공격을 하기위해서는 우회를 해야할 거 같다. 하지만 아래 read_memo()함수를 보면 따로 필터링을 거치지 않고 내용을 읽어오는 것을 볼 수 있다. 따라서 host1.dreamhack.games/read?name=12 부분에서 ../flag.py를 읽어 오도록 하면 flag를 얻을 수 있다.
Link : www.notion.so/DreamHack-Cookie-5a3a2b2cb3fd4ba38c727ca96844e22b