목록Hack (231)
CIDY
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
첫 오렌지농장 문제였다. 😢🍊🍊 개인적으로 pie를 싫어한다. 없어서 굿. 2.23이네.. 메뉴 문제다.. 9개의 페이지를 작성할 수 있는 것 같다. 순서대로 차곡차곡 쌓아주는 듯. 대충 메모리를 보아하니 602040부터 4바이트는 counter인것같음. 602060 ~ 6020a0까지는 author 0x40바이트고, 6020a0 ~ 6020e0은 malloc주소 저장인데 8칸이다.. 아니 i가 0 1 2 3 4 5 6 7 8 이면 9개인데?? hmm 그리고 6020e0부터는 사이즈 저장해둠. 사이즈 첫 칸은 침범 가능할지도.. %s로 보여준다. read할때 저장해둔 사이즈를 기준으로 한다. 사이즈 저장 첫 칸은 매우 큰 값으로 조작할 수 있으므로 idx 0에 대해 오버플로우 발생 가능. 그리고 사이즈 ..
점수보다는 솔브 수를 기준으로 문제 선택을 해나가는 중이다. 이거 풀고 3 X 17 풀어야 한다. 풀로 걸려있다. 힙 싫은데 힙일 확률이 상승함. glibc는 2.23이다. 에휴 init함수에서 mmap함. 메뉴다. add함수이다. 0부터 99까지는 괜찮은데 넘어서면 full이라고 함. 보아하니 bss에 ptr을 저장하는 모양인데, 앞에서부터 비어있는 순으로 내어주는듯. 아 자세히 보니 bss에는 mmap주소만 저장하고 mmap한곳에 싹다 저장하는거구나 암튼 별일없으면 size of heart받고, (read_input은 int인데 input은 long임ㄷㄷ) 그게 0x100넘으면 안됨. 만약 read_input에 음수를 줘도 input이 unsigned라서 저 검사에 걸릴듯. 202018부터 48(0x..
어쩌다가 POX본선까지 가서 어쩌다가 1등까지 해버렸다. 1등할 줄 알았으면 팀 이름 좀 멋있게 지을걸 팀에서 포너블 담당이라 포너블 문제만 봤는데, 예선때는 괜찮은 문제가 별로 없었는데 본선에서는 그래도 나름 배워갈 게 조금 있었다. 그래서 잊기전에 정리해둘 겸 글을 써본다.. 모든 포너블 문제를 정리한 것은 아니고, 좋은 문제만 선별한 것도 아니고, 그냥 개인적으로 배울 부분이 있었던 것만 정리한 것이다. exploitMe // Compile: gcc -o excuseme excuseme.c -lseccomp #include #include #include #include #include #include #include #include void init() { setvbuf(stdin, 0, 2, 0..
int __cdecl main(int argc, const char **argv, const char **envp) { void *v4; // rax char ptr[12]; // [rsp+0h] [rbp-10h] BYREF int v6; // [rsp+Ch] [rbp-4h] BYREF setbuf(stdout, 0LL); do { while ( 1 ) { puts("menu:"); puts("1. leak"); puts("2. do stuff"); if ( (unsigned int)__isoc99_scanf("%d", &v6) != 1 ) { puts("oops"); return 1; } if ( v6 != 1 ) break; v4 = malloc(8uLL); printf("here's your lea..