분류 전체보기
angstormCTF library_in_c (64bit fsb)
64bit fsb를 공부한 후 다시 풀어보았다. 다시 보니까 작은 부분에서 실수해버려서 flag를 못 얻고 있었다... 공부해보니 엄청 쉬운 문제... Writeup File information Code Main int __cdecl main(int argc, const char **argv, const char **envp) { __gid_t rgid; // ST0C_4 char s; // [rsp+10h] [rbp-90h] char format; // [rsp+50h] [rbp-50h] unsigned __int64 v7; // [rsp+98h] [rbp-8h] v7 = __readfsqword(0x28u); setvbuf(_bss_start, 0LL, 2, 0LL); rgid = getegid..
you_are_silver (64bit fsb)
64bit 환경에서의 fsb를 이용하는 문제이다. Writeup File information Code Main int __cdecl main(int argc, const char **argv, const char **envp) { char s; // [rsp+0h] [rbp-30h] int v5; // [rsp+28h] [rbp-8h] unsigned int v6; // [rsp+2Ch] [rbp-4h] setvbuf(stdout, 0LL, 2, 0LL); v6 = 50; puts("Please enter your name"); fgets(&s, 46, stdin); printf(&s, 46LL); v5 = get_tier(v6); printf((const char *)v5); return 0; }..
64bit Format String Bug
지금까지 미뤄뒀던 fsb 쪽을 공부해보았다. 아직 많이 미흡하지만 이후에도 여러 문제를 풀면서 여러 정보를 추가할 예정이다. Format String Bug FSB(Format String Bug) : 포맷 스트링 버그는 취약점 공격에 사용될 수 있는 보안 취약점이며, 포맷팅을 수행하는 printf() 같은 특정한 C 함수들에서 사용자 입력을 포맷 스트링 파라미터 (%d, %n ...)로 사용하는 것으로부터 나온다. 피라미터 종류 위와 같은 피라미터를 입력하면 어떤 일이 일어나는지 예제를 통해 알아보려 한다. TEST CODE #include #include #include int main(void) { char buf[300]; setvbuf(stdin, 0, 2, 0); setvbuf(stdo..
angstormCTF 2020
토/일 요일에는 최대한 잡고 월요일에는 못 풀던 문제를 조금 건들면서 진행했다. 여러모로 많이 부족한것을 느꼈다. 점 점 증진해야겠다. SOLVED MISC ws1 hxd로 문제 파일 열면 ctf가 그대로 박혀있다. shifter nc에 접속하면 무작위 문자열과 n 값 하나를 주는데 n을 피보나치수열로 바꾸고 값만큼 문자열을 이동하면 된다. 재귀 함수로는 40부터 시간제한에 걸려서 40~49까지 구한 값을 직접 넣어주었다. from pwn import * context.log_level = 'debug' p=remote("misc.2020.chall.actf.co",20300) def caesar(s,n): s=list(s) for i in range(len(s)): if s[i].isupper():..
hacknote
Writeup File information Code 함수명들은 따로 설정한 것입니다. Main void __cdecl __noreturn main() { int v0; // eax char buf; // [esp+8h] [ebp-10h] unsigned int v2; // [esp+Ch] [ebp-Ch] v2 = __readgsdword(0x14u); setvbuf(stdout, 0, 2, 0); setvbuf(stdin, 0, 2, 0); while ( 1 ) { while ( 1 ) { menu(); read(0, &buf, 4u); v0 = atoi(&buf); if ( v0 != 2 ) break; Delete(); } if ( v0 > 2 ) { if ( v0 == 3 ) { Print()..
훈폰정음
Writeup File information Code Main int __cdecl main(int argc, const char **argv, const char **envp){ alarm(0x3Cu); setvbuf(stdout, 0LL, 2, 0LL); setvbuf(stdin, 0LL, 2, 0LL); setvbuf(stderr, 0LL, 2, 0LL); puts(asc_11C0); while ( 1 ) { menu(); switch ( off_1214 ) { case 1u: add(); break; case 2u: edit(); break; case 3u: delete(); break; case 4u: check(); break; case 5u: exit(0); return; default: p..