[misc] TTT 아아, 진심으로! 멋진 삼각법 함수를 사용하는 방법을 알아야 하지 않습니까? 글쎄, 내가 너희를 가르칠 사람이야! 나는 7대양 최고의 수학자이고 당신의 "후한 기부"로 당신의 수업을 자동화했습니다! 자, 시작합시다! 문제에서 제공하는 웹사이트에 접속하면 다음과 같은 수식 계산 페이지가 뜨게 된다. 서버 소스코드를 보면, from flask import Flask, url_for, render_template, request from ast import literal_eval import sympy app = Flask(__name__) @app.route("/") def index(): return render_template('index.html') regular_operators ..
노션에만 정리했던 CTF Write-up을 좀 옮겨 적으려 한다. 참여했던 모든 CTF는 올릴 수 없겠지만 일단 노션에 적어놓은 것들은 다 옮기려고 한다. Dice CTF는 무려 2월달꺼..! [PWN] bop 보호기법 No Canary No PIE 바이너리 분석 stripped 된 바이너리여서 심볼 x very simple binary - Buffer overflow by gets() But complicate problem because it simple :( 처음에는 간단한 ROP chaining 문제인줄 알았다… 차차 설명 ㄱㄱ 익스플로잇 출력함수가 printf 밖에 없기 때문에 printf로 got leak 필요함 그 후 ROP chaining 삽질 과정 payload = b"A" * 32 +..
gets() - \x0a 까지만 입력받는다. - 개행문자가 들어가는 순간 입력안됨. - 마지막 \x0a도 버퍼에 입력되지 않는다. fgets() - \x0a 까지만 입력받는다. - null 문자도 입력받을 수 있다. scanf() - \x20, \x0a, \x09, \x0b, \x0c, \x0d까지만 입력받는다. - null 문자도 입력받을 수 있다. read() - \x0a까지 입력받는다. - 다른 값은 싹 다 버퍼에 들어감
dreamhack, Lazenca 같은 사이트를 보면 pwnable공부 첫 시작은 shellcode이다. 처음 pwnable을 공부했을 때는 왜 쉘코드를 먼저 배우는지 이해하지 못했다. 그냥 인터넷에 있는거 가져다 쓰면 안 되나? 이런 생각을 했었던 것 같다. 지나고 보니 왜 쉘코드를 먼저 배우는지 알 것 같다. pwnable을 하기에 앞서 쉘코드를 통해 배울 수 있는 게 매우 많다. 컴파일 과정, 어셈블리, 함수 호출 규약, 32bit와 64bit의 차이점 등등 또한 CTF에서는 일반적인 쉘코드로는 문제가 풀리지 않아 직접 짜야할 때가 있다. 그래서 나도 shellcode부터 정리를 시작하려고 한다. 먼저 shellcode를 공부하기 전에 어셈블리, 레지스터 관련해서 예전에 정리해둔 이 글을 읽고 오자..
현재 나는 맥북 프로 2019년형, 즉 인텔 맥을 사용하고 있다. 뵤비에서 받은 갤럭시북 프로(?)도 있지만 주로 맥북을 사용한다. 옛날에 m1 맥북에어를 구매했었지만 ARM프로세서이기 때문에 로컬에서 x86_64분석을 할 수가 없었고, 일부러 영문자판으로 샀는데 눈물을 머금고 팔았다 ㅠㅠ 옛날에는 VMware에 우분투를 깔아서 포너블을 했었는데 현재는 Docker를 사용한다. Docker를 쓰며 VMware에 비해 환경구축이 쉽고 빠르며, 또 이미지의 크기가 크지 않아 저장공간 측면에서도 좋았다. 그리고 이미지가 매우 가벼워 구동도 빠르게 된다는 점이 있다. #!/bin/bash echo "Running $1 version pwndocker..." case "$1" in "16.04") docker r..
오랜만에 글 씁니다... 거의 6달 만이네요.. ㅎㅎ 비오비가 끝난 후에 복학을 하면서 많이 바빴습니다... 현재 SaturnX라는 해킹팀에 들어가 있는데 주말마다 CTF 참여, 적어도 1달에 1번은 hspace에서 오프라인 CTF 참여 한것 같습니다.. 이제 학기도 끝났고 다시 본가로 올라왔는데 이번 방학을 좀 알차게 써보려고 합니다. 최근에 DEFCON 예선, CCE, Codegate등 메이저 CTF를 좀 연달아 나가게 되다 보니 벽을 많이 느껴버렸습니다...ㅋㅋㅋㅋ 모르는게 너무 많고 또 분석능력도 떨어진다는 것을 많이 느껴버렸습니다.. ㅠㅠ 그래서인지 이번 방학에는 오로지 포너블 공부에 열중하려고 마음을 먹게 되었습니다. 2달동안 맘먹고 빡세게 해보려고 하고, 또 그냥 공부하지 않고 블로그에 정리..