전체 글 65

Node JS prototype pollution to RCE / express-fileupload@1.1.6 + EJS

http://blog.p6.is/Real-World-JS-1/ posix님이 발견하신 CVE-2020-7699 취약점이 너무나 흥미로워 보였고, 유익한 내용이기에 적어본다. 실습 환경은 express-fileupload@1.1.6 버전을 사용해야한다. 우선, prototype pollution 에 대해 간단하게 표현해보자면, 아래와 같다. var a = {} var b = {} b.__proto__.pollution = '1' console.log(a.pollution) // '1' 자칫 신경 안써도 될 것 같아 보이지만, express-fileupload@1.1.6 에서 parseNested option이 설정돼있으면 아래와 같은 내부 동작이 이루어진다. // node_modules\express-fi..

Hacking Note/Web 2020.09.07

2019 ROOT CTF Wripteup

I have an eraser qr code를 준다. https://merricx.github.io/qrazybox/ 에서 복구하면 끝난다. FLAG{you_got_the_QRcode} Easy PHP 문자열과 == 비교를 해서 true가 되는 숫자는 0이다. ord('\x00') = 0이므로 널을 넘겨주면 된다. http://sdhsroot.kro.kr/newprob2/?str=%00 FLAG{Nu11_0_5+R!n9} Doctor rand xor_rand 코드를 그대로 복사해서 돌려보면 결과값이 나온다. 5240802525653799023 FLAG{X0R_F4k3_r@^D0m_NuM63r} Hi 직업 3개중 하나 고르고, wizard를 골랐을시 경험치가 100 이상일때 BOF를 준다. 경험치는 사냥 ..

CTF Writeup 2020.09.07

2020 Incognito CTF Writeup

1.Electronic Shock - Reversing A Chromium rendering engine and the Node.js runtime, what a beautiful combination! This challenge was made by CAT-Security from The Catholic University of Korea (CUK) 바이너리(elf) 파일을 실행하면 $PLUGINSDIR 를 압축 푼다. 안에는 아래와 같이 있다. app-64.7z를 풀고 들어가면 Electronic-Shock.exe 파일과 여러 dll, 폴더들이 있는데, electron으로 빌드된 앱이라는 것을 알 수 있다. resources 폴더에 asar 파일이 있는데, 이를 decompile 할 수 있다. $ n..

CTF Writeup 2020.09.07

2019 Layer7 CTF - Login Challenge

1.Login Challenge 이 문제를 새벽 1시 29분에 풀었는데, 상당히 힘들었던 부분이 많은것같다. 우선 내가 아는 것이 별로 없기에 처음에 게싱을 잘 못한것 같고, 힌트 2가 나오자마자 제대로 풀리기 시작하면서 결국 풀었다. 우선 base64로 인코딩한 쿼리를 POST로 보내면서, GET 쿼리에 debug가 있으면 각 쿼리에 따라 debug information을 주석처리해서 페이지에 담아준다. 만약 base64(login)을 보내면 이렇게 뜨는데 힌트2에 index.php 일부분이 공개되었다. https://gist.github.com/debukuk/f4edc592eaf2b89ab4377a9c7fe8724d $input = urldecode($input); $input = base64_dec..

CTF Writeup 2020.09.07