전체 글

저의 IT 성장을 담은 블로그 입니다!
공부/영어

[영어] 2019 고1 11월 모의고사 해석

시험대비로 공부하기에 20, 21, 22, 29, 33, 37, 38, 41번만 진행합니다. 밝은 모드가 좀 더 잘 보입니다. 해석은 직접 했기 때문에 잘못 돼있거나 이상한 부분이 있을 수 있습니다. 20번 We tend to / go long periods of time / without reaching out to / the people (that) we know. 우리는 우리가 아는 사람들에게 오랜 기간 연락 없이 지내는 경향이 있습니다. tend to : ~하는 경향이 있다. periods : 기간 reaching out to : 연락하다. Then, we suddenly / take notice of the distance / ( that has formed ) / and we scramble ..

공부/영어

[영어] 2021 고1 9월 모의고사 해석

시험대비로 공부하기에 35번부터 41번까지 진행합니다. 밝은 모드가 좀 더 잘 보입니다. 해석은 직접했기때문에 잘못 되있거나 이상한 부분이 있을 수 있습니다. 35번 The Zeigarnik effect / is commonly referred to / as the tendency (of the subconscious mind) / to remind you of a task / [that incomplete until that task is complete] 자이가르닉 효과는 일반적으론 너에게 불완전한 일을 완료할 때까지 일을 상기시켜주는 잠재의식의 경향을 가리킨다. commonly : 일반적으로 referred to A as B : A를 B라고 가르키다(언급) tendency : 경향 subconsci..

해킹/리버싱

[리버싱] 스택프레임이란..?

스택 프레임(Stack Frame)이란? What's the stack frame? 스택 프레임(Stack Frame)이란 함수가 호출될 때, 그 함수만의 스택 영역을 구분하기 위하여 생기는 영역이다. 이 공간에는 함수와 관계되는 지역 변수, 매개변수가 저장되며, 함수 호출 시 할당되며 함수가 종료되면 소멸한다. 함수가 호출되면 스택에는 함수의 매개변수, 호출이 끝난 뒤 돌아갈 반환 주소값, 함수에서 선언된 지역변수 등이 저장됩니다. 이렇게 스택영역에 차례대로 저장되는 함수의 호출 정보를 스택프레임(Stack Frame)이라고 합니다. 이러한 스택 프레임 덕분에 함수의 호출이 모두 끝난 뒤에, 해당 함수가 호출되기 이전 상태로 되돌아갈 수 있습니다. 1. 함수 프롤로그(Prolog) push rbp, m..

해킹/시스템해킹

[시스템해킹] HackCTF < Basic_FSB >

https://ctf.j0n9hyun.xyz/challenges#Basic_FSB CODE int __cdecl main(int argc, const char **argv, const char **envp) { setvbuf(stdout, 0, 2, 0); vuln(); return 0; } int vuln() { char s[1024]; // [esp+0h] [ebp-808h] BYREF char format[1032]; // [esp+400h] [ebp-408h] BYREF printf("input : "); fgets(s, 1024, stdin); snprintf(format, 0x400u, s); return printf(format); } int flag() { puts("EN)you have ..

해킹/시스템해킹

[시스템해킹] FSB(Format String Bug) 이란?

FSB(Format String Bug) FSB(Format String Bug)란 버퍼 오버플로우 해킹 기법중 하나이며 사용자의 입력을 통해 프로그램의 흐름을 바꿀 수 있는 취약점이다. FSB(Format String Bug) printf의 인자 개수는 포맷 문자 개수로 결정됩니다. buf의 값에 우리가 마음대로 입력이 가능하다면 우리가 원하는 포맷문자를 넣어서 조작이 가능해집니다. BOF가 발생하지 않아도 원하는 값을 얻을 수 있습니다. 오른쪽으로 상황에서는 FSB취약점이 발생하여 main 함수 스택의 내용을 모두 노출 시킬 수 있습니다. %p 출력 %p를 통해 다음 주소를 유출 시킬수 있으며 %[숫자]$p를 통해 숫자만큼 떨어져 있는 메모리를 출력 가능하다. 위와 같이 입력하게 되면 다음 스택의 메..

해킹/시스템해킹

[시스템해킹] HackCTF < Basic_BOF #1 >

https://ctf.j0n9hyun.xyz/challenges#Basic_BOF%20#2 CODE int __cdecl main(int argc, const char **argv, const char **envp) { char s[128]; // [esp+Ch] [ebp-8Ch] BYREF int (*v5)(); // [esp+8Ch] [ebp-Ch] v5 = sup; fgets(s, 133, stdin); v5(); return 0; } int shell() { return system("/bin/dash"); } shell함수를 실행시키면 되는 문제 같습니다. fgets에서 BOF가 터집니다. 코드는 dummy[128] + shell 이면 해결될 것 같습니다. 왜 리턴까지 안덮냐고 궁금하실 수 있는..

해킹/시스템해킹

[시스템해킹] GrabCON Pwn CTF? write up

GrabCON CTF 마지막 문제입니다. CODE 아이다로 키면 메인이 존재하지 않습니다. start부터 찾아 나갑니다. void __usercall __noreturn start(int a1@, void (*a2)(void)@) { int v2; // esi int v3; // [esp-4h] [ebp-4h] BYREF char *retaddr; // [esp+0h] [ebp+0h] BYREF v2 = v3; v3 = a1; __libc_start_main(sub_1357, v2, &retaddr, sub_13B0, sub_1420, a2, &v3); __halt(); } int __cdecl sub_1357(int a1) { setvbuf(stdout, &dword_0 + 2, 0, 0); sub_1..

해킹/시스템해킹

[시스템해킹] GrabCON can you? write up

GrabCON CTF 그다음 문제~! 문제 파일 이름은 cancancan이었습니다. CODE int __cdecl main(int argc, const char **argv, const char **envp) { init(&argc); puts("can you bypass me???"); vuln(); return 0; } unsigned int vuln() { int i; // [esp+4h] [ebp-74h] char buf[100]; // [esp+8h] [ebp-70h] BYREF unsigned int v3; // [esp+6Ch] [ebp-Ch] v3 = __readgsdword(0x14u); for ( i = 0; i

해킹/시스템해킹

[시스템해킹] GrabCON easy_bin write up

GrabCON CTF 이번 GrabCON에 참가하며 pwnable만 살짝 풀고 나왔다. 총 4문제가 있었는데 3문제밖에 못 풀어서 매우 슬프다 ㅠ CODE int __cdecl main(int argc, const char **argv, const char **envp) { char v4[48]; // [rsp+0h] [rbp-30h] BYREF gets(v4, argv, envp); printf("well lets check if you can bypass me!!!"); return 0; } __int64 vuln() { execve("/bin/sh", 0LL, 0LL); return 0LL; } 너무나도 간단한 BOF문제인것 같습니다. 파일은 64BIT로 페이로드는 dummy[48] + sfp[8]..

해킹/시스템해킹

[시스템해킹] Buffer Overflow(BOF)

BUFFER OVERFLOW BOF 설정되어 있는 버퍼의 크기보다 크게 입력을 받을 수 있을 때 생기는 취약점입니다. int __cdecl main(int argc, const char **argv, const char **envp) { char s[40]; // [esp+4h] [ebp-34h] BYREF int v5; // [esp+2Ch] [ebp-Ch] v5 = 0x4030201; fgets(s, 45, stdin); printf("\n[buf]: %s\n", s); printf("[check] %p\n", v5); if ( v5 != 0x4030201 && v5 != 0xDEADBEEF ) puts("\nYou are on the right way!"); if ( v5 == 0xDEADBEEF ..

나봄하랑
나의 IT 성장일지