본문 바로가기

분류 전체보기

CODEGATE2014 Nuclear control system write_up target설정과정에서 널바이트를 없애는 값을 넣으면, 커맨트 입력과정에서 메모리 릭이 발생메모리 릭으로 얻어낸 passcode를 가지고 launch를 실행하면, start_routine에서 BOF 가능 from socket import *from struct import *from time import sleep p = lambda x : pack(" 더보기
재레드 다이아몬드의 총,균,쇠 서울대생이 가장 많이 읽은 책이라기에, 전부터 관심있게 지켜보다가, 병원 입원한김에 읽으려고 합니다. 정의란 무엇인가를 다읽고 읽으려고 하기에 후기는 좀 뒤에 남기도록 하겠습니다. 더보기
마이클 샌델의 정의란 무엇인가? 를 읽고. 입원도 했겟다, 평소 읽으려고 벼르고 있엇던 'JUSTICE'를 드디어 읽어보았습니다. 평소 철학처럼 생산성 없는 학문에 왜그리들 열광할까 라고 생각해오던 터에이책은 정말, 제게 신선한 충격을 주네요. 애매모호한 상황에서 정의는 어떠한 것인가라는 것을 마이클 샌델 교수의 하버드 강의의 대화내용을 그대로 적어, 책내용을 지루하지 않게 전개했을 뿐더러, 질문을 통해, 학생들에게 계속 생각할수 있게끔 강의를 유도하는 실력에 감탄을 햇습니다. 더보기
병원 입원했습니다. 오랜만에 포스팅 하네요. 마치 보는사람이 많은것처럼 글을 쓰지만, 기록해두고 싶은 마음에 이렇게라도 남깁니다. 제가 운동을 정말 좋아하구, 또한 오래하다보니, 좀쉬라는 신의 뜻인지 , 저번 4월 29일에 운동중에 다치고 말앗네요 진단 명을 보시면 아시겟지만, 머신 벤치프레스에 친구 보조하는 도중에 양쪽 네번쨰 손가락이 기게에 깔리는 사고가 발생해서 손가락 끝이 뭉개졌습니다. 사고당시 뼈가보이고 손가락 끝이 거의 찢겨 날라갓던터라, 피도많이나서 조금놀라긴 했지만, 트레이너 분들의 빠른대처로인해서 위험하진 않았네요. 제 친구가 많이 놀라고 미안해하는 모습에 괜찮다 라고 의연한 모습만 보여줫는데, 사실 처음에는 손가락 잘라야 되는줄 알고, 많이 힘겨웠는데, 다행이 살점이 많이 붙어있어서, 손가락 살을 땡겨서 .. 더보기
종이 화분 꽃 재배 세트(해바라기) 여자친구랑 다이소 쇼핑하다가 눈에띈 녀석. 방울토마토도 있구 여러가지 종류가 있엇는데 꽃종류는 이놈뿐이라 선택!이글을 쓰는 시점은 5월 11일이지만 아직도 싹이 안 나네요.ㅠㅠ 더보기
vortex1 Putty를 이용해 vortex0에서 얻은 계정을 가지고 vortex.labs.overthewire.org에 ssh로 접속한다.일단 타겟의 위치는 /games/vortex/vortex1이고 해당 소스코드는 홈페이지의 해당 문제 페이지에 있다. #include #include #include #include #define e(); if(((unsigned int)ptr & 0xff000000)==0xca000000) { setresuid(geteuid(), geteuid(), geteuid()); execlp("/bin/sh", "sh", "-i", NULL); } void print(unsigned char *buf, int len) { int i; printf("[ "); for(i=0; i < len.. 더보기
vortex0 문제는 이렇다.Your goal is to connect to port 5842 on vortex.labs.overthewire.org and read in 4 unsigned integers in host byte order. Add these integers together and send back the results to get a username and password for vortex1. This information can be used to log in using SSH.Note: vortex is on an 32bit x86 machine (meaning, a little endian architecture)vortex.labs.overthewire.org 5842로 접속해서 4의 정수.. 더보기
Fake ebp 이 기법을 적용하는데에는 다음 조건이 맞으면 활용하기 좋다.1.ret이후로는 덮어 씌울수 없다.2.ret에 스택 or 라이브러리를 필터링 해놓았다. 이 기법의 이름 대로, ebp를 바꾸는 작업을 통해 다른 부분에서 ret을 뽑아낼수 있도록 바꿔주는 기법이다. 일단 모든 거의 모든 함수에는 다음과 같은 에필로그가 존재한다. leaveret 이 두가지 어셈블리는 다음과 같이 해석할수 있다. mov esp ebppop ebp pop eipjmp eip 그렇다면 이것을 이용하여 ebp를 내가 원하는 곳으로 조작할수 있고, return address에는 leave-ret의 가젯의 주소를 넣어 놓는다면, 필터링이 되지 않는 곳에서 return을 하거나, RTL공격시 인자를 주는 행위가 가능해진다.이것이 이 기법의 .. 더보기
LOB FC3 [dark_eyes -> hell_fire] 를 풀다가 생긴 의문점에 대한 분석 1.왜 로 ret을 바꾸면 쉘이 따지는가? 먼저 그부분의 어셈블리를 한번 살펴보자. 0x75077f : call 0x743d30 0x750784 : mov ecx,DWORD PTR [ebx-316]0x75078a : xor edx,edx0x75078c : xor eax,eax0x75078e : mov DWORD PTR [ebx+5820],edx0x750794 : lea edx,[ebx-47601]0x75079a : mov edi,DWORD PTR [ecx]0x75079c : mov DWORD PTR [ebx+5816],eax0x7507a2 : mov DWORD PTR [esp+4],esi0x7507a6 : mov DWORD PTR [esp+8],edi0x7507aa : mov DWORD PTR [esp].. 더보기
LOB FC3 [dark_eyes -> hell_fire] [dark_eyes@Fedora_1stFloor ~]$ cat hell_fire.c/* The Lord of the BOF : The Fellowship of the BOF - hell_fire - Remote BOF on Fedora Core 3 - hint : another fake ebp or got overwriting - port : TCP 7777*/ #include int main(){ char buffer[256]; char saved_sfp[4]; char temp[1024]; printf("hell_fire : What's this smell?\n"); printf("you : "); fflush(stdout); // give me a food fgets(temp, 1024, stdin.. 더보기