전체 글

전체 글

    AmateursCTF 2024

    AmateursCTF 2024

    체감상 작년보다 어려웠는데 포너블 10개 중 4개 풀어서 선방했다고 생각한다. [solved] [web] denied 더보기 const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { if (req.method == "GET") return res.send("Bad!"); res.cookie('flag', process.env.FLAG ?? "flag{fake_flag}") res.send('Winner!') }) app.listen(port, () => { console.log(`Example app listening on port ${port}`) }) get으로 접근해야 하..

    [Dreamhack] HEAP_AEG write-up

    보호되어 있는 글입니다.

    [Dreamhack] STACK_AEG write-up

    보호되어 있는 글입니다.

    [Linux Kernel Exploit] ROP (with ret2usr)

    ROP를 활용해서 ret2usr를 하는 방법에 대해 알아보려고 한다. 익스플로잇 순서는 다음과 같다. (ret2usr과 동일)prepare_kernel_cred(0); 수행 ("root"의 자격 증명 준비)prepare_kernel_cred() 함수의 리턴 값("root"의 자격 증명)을 commit_creds() 함수에 전달system("/bin/sh"); 예제로는 [QWB CTF 2018] core 문제를 보기로 했다. https://github.com/ctf-wiki/ctf-challenges/blob/master/pwn/kernel/QWB2018-core/rop.c trap frame을 만들고 ret2usr기법을 활용하는 것은 동일하다. 다만, LPE를 함수로 하는 것이 아니라 가젯으로 하기 때문..