# System hacking
[Dreamhack] validator (syscall)
read함수 밖에 없어서 libc base를 구할 수 없을 때는 read나 sleep함수를 syscall 가젯으로 만들어 익스플로잇을 할 수 있습니다.read 함수를 봐보면 끝에 1 바이트만 주소가 변하고 앞에 주소는 동일하게 유지됩니다.그래서 뒤에 1바이트 주소를 0
[Dreamhack] tcache_dup
Canary와 NX 보호 기법이 걸려있습니다.1번을 통해 원하는 크기의 청크를 할당할 수 있습니다.2번을 통해 청크를 해제할 수 있는데, 청크를 해제후 초기화하지 않고 있어서 Double Free Bug가 발생합니다.근데 이번에는 청크 값을 수정할 수 있는 함수가 없어
[Dreamhack] tcache_dup2
1번을 통해 원하는 크기의 청크를 할당할 수 있습니다.2번을 이용해서 보호 기법을 우회할 수 있습니다.3번을 통해 청크를 해제할 수 있는데, 청크를 해제후 초기화하지 않고 있어서 Double Free Bug가 발생합니다.쉘을 띄워주는 get_shell() 함수가 있습니
[Dreamhack] tcache_poison
원하는 크기의 청크를 할당, 해제할 수 있습니다.case 2에서 청크를 해제하고 초기화지 하지 않아서 Double Free Bug가 발생합니다.case 3와 Double Free Bug를 이용해 libc base를 릭할 수 있습니다.case 4를 통해 보호 기법을 우회
[Dreamhack] Exploit Tech: Tcache Poisoning
Tcache Poisoning Tcache Poisoning은 tcache를 조작하여 임의 주소에 청크를 할당시키는 공격 기법을 말합니다. 원리 중복으로 연결된 청크를 재할당하면, 그 청크는 할당된 청크이면서, 동시에 해제된 청크가 됩니다. 이때 할당된 청크에서
[Dreamhack] validator
모든 보호 기법이 꺼져 있습니다.read(0, s, 0x400)으로 인해 버퍼 오버플로우가 발생합니다.validate(s, 128) 함수를 호출합니다.문자열의 처음 열 글자는 DREAMHACK!이어야 합니다.문자열의 12번째 글자부터 128번째 글자 까지는 s\[i]
[Pwnable] 21. Logical Bug: Path Traversal
1. 서론 2. 리눅스 경로 3. Path Traversal 4. Q&A 5. 마치며
[Pwnable] 20. Logical Bug: Command Injection
1. 서론 2. Command Injection 3. Q&A 4. 마치며
[hacktheon] 리턴 지향 프로그래밍
2022 Hacktheon Sejong에서 나왔던 문제입니다.대회 당시에는 한 문제도 풀지 못해서 충격을 먹었는데, 드디어 리턴 지향 프로그래밍 문제를 풀게되어서 write up을 작성하게 되었습니다.NX 보호 기법이 걸려있습니다.문제에서 코드는 주어지지 않고 바이너리
[Dreamhack] Memory Corruption: Double Free Bug
Double Free Bug (DFB)는 같은 청크를 두 번 해제할 수 있는 버그를 말합니다. ptmalloc2에서 발생하는 버그 중 하나이며, 공격자에게 임의 주소 쓰기, 임의 주소 읽기, 임의 코드 실행, 서비스 거부 등의 수단으로 활용될 수 있습니다.Danglin