pwnable(17)
-
[CTF] SanDiego CTF 2024 - Def1nit3lysAfetoDol1st5iNc31hAveF0rb1dUnsafec0de : 1-day Rust pwn
RUST로 작성된 todo list 바이너리를 익스플로잇하는 문제다. 문제 설명에서 #![forbid(unsafe_code)]로 unsafe 코드 사용을 막았다고 겁준다. thread 'main' panicked at 'assertion failed: index 아무거나 입력하다보면 패닉이 뜰때가 많은데, 이때 나오는 에러 메시지를 보면 smallvec 이라는 라이브러리를 사용한다는 것을 알 수 있다. smallvec-1.6.0 버전이라는 것도 알 수 있는데, 구버전이다. Buffer overflow in `insert_many()` · Issue #252 · servo/rust-smallvec · GitHub Buffer overflow in `insert_many()` · Issue #252 · s..
2024.05.17 -
[CTF Write Up] DICE CTF 2024 qual - boogie-woogie : 1-byte swap primitive to ROP
Out-Of-Bounds 취약점이 있는 바이트 스왑 함수가 있다. 1. 바이너리 영역에서 발생하는 Out Of Bounds 이므로 적당히 offset을 때려맞춰서 Heap 영역 주소를 얻는다. (Heap의 Top Chunk가 굉장히 크다는 것을 이용해서 임의의 탑 청크 내에 바이트를 스왑하고, 계속 주소를 줄이는 방식을 이용하면 경우의 수를 크게 줄일 수 있음) 2. Top Chunk의 size를 덮어서 크기를 작게 만든 후 scanf가 매우 큰 버퍼를 할당하게 만들면, Unsorted bin에 청크를 하나 넣을 수 있다. 이후 Unsorted bin의 fd에서 libc 주소를 leak 한다. 3. envrion 변수를 통해 stack 주소까지 leak 한다면 이제 ROP를 할 수 있다. 4. 이때 바이..
2024.02.05 -
[CTF write up] BlackHat MEA CTF 2023 - JIT-8 : Exploit the CHIP-8 JIT Compiler
뭔가 복잡해보이지만, CHIP-8 시스템을 그대로 구현한 것이므로 거의 분석할 필요가 없다. https://en.wikipedia.org/wiki/CHIP-8 해당 Wikipedia에서 opcode와 동작을 알 수 있으며, IDA에서도 Symbol이 어느정도 남아 있어 분석 자체는 어렵지 않다. Although it seems pretty complicated, there is almost no need to analyze it since it is a direct implementation of the CHIP-8 system. https://en.wikipedia.org/wiki/CHIP-8 You can find out the opcode and operation in Wikipedia, and t..
2023.11.23 -
[CTF write up] N1CTF 2023 - n1proxy : Exploit UAF in Proxy Binary developed with RUST
https://github.com/Nu1LCTF/n1ctf-2023/blob/main/pwn/n1proxy/server/src/main.rs 문제 소스코드는 출제자의 Github에서 확인할 수 있다. 솔버가 1명 밖에 없는 문제였고, 대회 당시에 끝내지 못했지만, 굉장히 퀄리티가 높은 챌린지였기 때문에 대회 후에 마저 풀었다. You can check provided source code of challenge in author's github. It was a challenge with only one solver, and I couldn't finish it at the time of the competition, but it was a good challenge, so I finished it af..
2023.10.24 -
[CTF write up] corCTF 2023 - cshell3 : Pwning the AIS terminal
바이너리가 간단한 편은 아니었지만, 그럼에도 불구하고 매우 Basic한 문제였다. The binary wasn't simple, but it was a very basic challenge nonetheless. void VHFADMIN() { char *username, *password; username = readline("Enter username: "); password = readline("Enter password: "); char l_password_hash[65] = {0}; sha256_password(password, l_password_hash); if (strcmp(username, "admin") == 0 && strcmp(l_password_hash, password_hash)..
2023.07.31 -
[CTF write up] Fall GoN Open Qual CTF 2023 - NPU : Qemu VM Escape via DMA MMIO reentrancy
보호되어 있는 글입니다.
2023.07.09