시스템해킹

해킹/시스템해킹

[시스템해킹] 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를 통해 숫자만큼 떨어져 있는 메모리를 출력 가능하다. 위와 같이 입력하게 되면 다음 스택의 메..

해킹/시스템해킹

[시스템해킹] 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 ..

나봄하랑
'시스템해킹' 태그의 글 목록