목록분류 전체보기 (66)
ghkdtlwns987
from pwn import* context(arch='amd64',os='linux') context.log_level = 'debug' context.terminal = ['tmux','splitw','-h'] r = process('./magicheap') elf = ELF('./magicheap') def info_log(): log.info('create_heap : main + 173') log.info('edit_heap : main + 185') log.info('delete_heap : main + 197') log.info('heaparray : 0x6020e0') pause() def create(size,content): log.info('create') r.sendlineafter..
hitcon training lab14 를 푸려고했는데, 약간 부족한거 같아, 공부했던걸 약간 끄적여보려고 한다. Unsorted bin 이란? -> 나중에 정리하겠지만, small bin 이나, large bin 이 free() 되었을 때 unsorted bin 에 거쳐 free() 되어진다. 1. unsorted bin 공격이란? Unsorted bin 에 들어가고, free() 될 때 발생하는 unlink 과정에서 발생하는 취약점을 이용해 main_arena 영역의 주소를 특정 메모리에 저장하는 기법이다. 2. Exploit Senario 1) 2개의 heap을 할당 2) index 0 chunk 해제 -> (unlink 취약점 이용) 3) index 0 chunk 의 bk에 주소를 overwrit..
#include #include #include void read_input(char *buf,size_t size){ int ret ; ret = read(0,buf,size); if(ret content = (char *)malloc(size); if(!heaparray[i]->content){ puts("Allocate Error"); exit(2); } heaparray[i]->size = size ; printf("Content of heap:"); read_input(heaparray[i]->content,size); puts("SuccessFul"); break ; } } } void edit_heap(){ int idx ; char buf[4]; printf("Index :"); read(..
#include #include #include #include #include #include #include #include #define TIMEOUT 60 struct flower{ int vaild ; char *name ; char color[24] ; }; struct flower* flowerlist[100] ; unsigned int flowercount = 0 ; void menu(){ puts(""); puts("☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ "); puts("☆ Baby Secret Garden ☆ "); puts("☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ "); puts(""); puts(" 1 . Raise a flower..
우선 무선랜 카드가 있어야 한다. 내 무선랜 카드는 NEXT-1201AC 이다. 또한 내 Ubuntu version 은 18.04 이며, kernel 버젼은 5.4.0 이다. 먼저 NEXT 홈페이지에서 다운받을 수 있는 파일은 안됬다.. 다음과 같이 입력하면 된다. github.com/RinCat/RTL88x2BU-Linux-Driver RinCat/RTL88x2BU-Linux-Driver Realtek RTL88x2BU WiFi USB Driver for Linux. Contribute to RinCat/RTL88x2BU-Linux-Driver development by creating an account on GitHub. github.com cd Download git clone https://gi..
#include #include #include #include #include #include struct item{ int size ; char *name ; }; struct item itemlist[100] = {0}; int num ; void hello_message(){ puts("There is a box with magic"); puts("what do you want to do in the box"); } void goodbye_message(){ puts("See you next time"); puts("Thanks you"); } struct box{ void (*hello_message)(); void (*goodbye_message)(); }; void menu(){ puts("..
보호되어 있는 글입니다.
ICMP 헤더는 다음과 같이 그려진다. ICMP 메시지는 IP 네트워크에서 진단이나 제어 용도로 사용되고, 오류에 대한 응답으로 생성된다. 예를들어 ping 명령어로 특정 사이트에 메세지를 보내면 응답이 오는데, 이는 ICMP 메시지를 이용한 예이다. ICMP 헤더는 8byte 로 되어있는데, ICMP 헤더의 첫 번재 byte 타입과 두 번째 byte인 코드를 주목해야 한다. -> IP Header 크기만 알수 있다면 ICMP 헤더의 시작 부분을 알 수 있다. def getIPHeaderLen(ipheader): ipheaderlen = ipheader[0] & 0x0F#ICMP 헤더가 시작되는 위치가 된다. ipheader *= 4 return ipheaderlen ipheader[0] 은 (Versi..
보호되어 있는 글입니다.
IP 헤더의 그림은 다음과 같다. version : IP 프로토콜의 버젼이다. Header Length : 헤더의 길이를 32bit 단위로 나타낸다. Service Type : IP가 사용자에게 제공하는 서비스 품질에 관련된 내용을 담는다. Entire Packet Length : IP 데이터그램 크기를 나타낸다. Datagream ID : IP데이터그램의 고유 식별 번호이다. (인터넷을 통해 전송되는 기본 단위) Flag : Flag 필드의 두 번째와 세 번째의 비트를 각각 DF, MF 라고 하는데, DF비트를 1로 설정하면 데이터그램은분 할되지 않고 전송된다. 분할된 패킷으로 전송될 때 MF 비트를 1로 설정해 이 패킷 뒤에 또 다른 분할 패 킷이 있다는 것을 보여준다. MF가 0이면 더 이상 분할된..