ascii

Reversing Advanced

[dreamhack] rev-basic-1

rev-basic-1int __cdecl main(int argc, const char **argv, const char **envp){ char v4[256]; // [rsp+20h] [rbp-118h] BYREF memset(v4, 0, sizeof(v4)); printf("Input : "); sub_140001440("%256s", v4); if ( (unsigned int)sub_140001000(v4) ) puts("Correct"); else puts("Wrong"); return 0;}sub_140001000(v4)가 TRUE면 "Correct"를 출력한다. sub_140001000()를 분석해보자._BOOL8 __fastcall sub_140001000(_BYTE ..

ftz

[ftz] level7

문제분석 & 풀이 힌트를 확인했지만, 처음에 무슨말인지 이해가 안되서 /bin/level7 부터 실행했다. level7을 실행하니 힌트의 언급대로 패스워드 입력을 요청한다. 결과를 확인하기 위해 아무 값이나 입력했고 /bin/wrong.txt라는 파일을 찾지 못했다는 문구가 나온다. 필자는 wrong.txt에 관한 의문을 해결하는 것이 핵심이라고 생각하고 삽질을 했으나.. 로컬에서 ftz 환경을 구축하는 경우에는 wrong.txt 파일이 없는 경우가 있다고 한다. (여기서 삽질하신 다른 독자분들도 많을거라고 생각한다.) wrong.txt 파일이 존재하는 경우에는 내용은 다음과 같다. --_--_- --____- ---_-__ --__-_- 원래는 패스워드 입력이 실패하면 위와 같은 힌트가 나온다.  바로..

webhacking.kr

[webhacking.kr] old-23 (XSS)

문제분석 & 풀이페이지에 접속하니 빈칸과 함께 미션이 주어져있다. 미션 그대로 스크립트 태그를 넣어 제출하면 "no hack"이라고 뜬다. url 부분을 보니 code 라는 파라미터를 통해 값이 전달되고 있다. 아마 서버쪽에서 필터링을 하는 것 같은데 어떻게 우회할 수 있을까 고민을 해봤다. 아스키코드표를 보면 0x00이 NULL 값이 것을 알 수 있는데 code 파라미터를 통해 명령어를 전송하기 때문에 명령어 사이사이에 NULL값을 넣어서 전송하면 우회되서 필터링에 걸리지 않고 사이사이에 넣은 값이 NULL 이기 때문에 명령어는 정상적으로 실행되지않을까? 라고 생각했다. 위 사진처럼 스크립트 태그 명령어 사이마다 NULL(%00)을 넣고 값을 전송해봤다. 명령어가 정상적으로 실행됐다! 클리어!!

keyme
'ascii' 태그의 글 목록