본문 바로가기

시스템해킹

(5)
해킹 관련 질문 카카오톡 오픈 채팅 open.kakao.com/o/gQGybIYc gdb #포너블 #시스템해킹 #pwn #pwnable #해킹 #정보보안 #보안 #초보자 환영 #질문방 open.kakao.com
Root Me wargame ELF x86 - Stack buffer overflow basic 2 write-up 1번 문제와 비슷한 문제이다. 소스코드를 보면서 이해해보자. #include #include #include #include void shell() { setreuid(geteuid(), geteuid()); system("/bin/bash"); } void sup() { printf("Hey dude ! Waaaaazzaaaaaaaa ?!\n"); } void main() { int var; void (*func)()=sup; char buf[128]; fgets(buf,133,stdin); func(); } 버퍼 변수 위에 sup 함수의 주소 값을 담는 변수가 있고 그 변수로 함수를 호출한다. 128byte짜리 변수에 133byte를 입력받기 때문에 bof가 일어난다. bof를 통해 버퍼 변수에 12..
Root Me wargame ELF x86 - Stack buffer overflow basic 1 write-up 간단한 bof 문제이다. 소스코드를 열어보자. #include #include #include #include int main() { int var; int check = 0x04030201; char buf[40]; fgets(buf,45,stdin); printf("\n[buf]: %s\n", buf); printf("[check] %p\n", check); if ((check != 0x04030201) && (check != 0xdeadbeef)) printf ("\nYou are on the right way!\n"); if (check == 0xdeadbeef) { printf("Yeah dude! You win!\nOpening your shell...\n"); setreuid(geteuid(..
Root Me wargame ELF x86 - Format string bug basic 2 write-up % 안 써놓고 못 찾아서 1시간 넘게 삽질했다... 너무 힘드니까 소스코드를 열어보자. #include #include #include #include int main( int argc, char ** argv ) { int var; int check = 0x04030201; char fmt[128]; if (argc
Windows 32bit 환경에서 버퍼오버플로우 기초 실습 오늘은 BOF를 통해서 계산기를 띄우는 걸 해볼 것이다. BOF 실습을 위한 프로그램을 제작한다. test.txt의 파일 사이즈와 test.txt의 내용을 출력하는 프로그램이다. #include #include #include int get_filesize(FILE *fp){ int filesize; fseek(fp, 0, SEEK_END); filesize = ftell(fp); fseek(fp, 0, SEEK_SET); return filesize; } int main() { FILE *fp; char buf[64]; int filesize; fp = fopen("test.txt", "rb"); filesize = get_filesize(fp); if (filesize == -1) { return 0..