본문 바로가기

전체 글

(153)
[SWING] 네트워크 패킷 포렌식 보호되어 있는 글입니다.
SSL 보호되어 있는 글입니다.
학부연구생 지원 자기소개서 보호되어 있는 글입니다.
[Dreamhack] validator 코드가 없어서 당황했다. 코드는 IDA로 열면 구할 수 있다. 적용된 보호 기법이 없다. ROP, shellcode execute, GOT overwrite 모두 가능하다. validator_dist int __cdecl main(int argc, const char **argv, const char **envp) { char s[128]; // [rsp+0h] [rbp-80h] BYREF memset(s, 0, 0x10uLL); read(0, s, 0x400uLL); validate((__int64)s, 0x80uLL); return 0; } S[128]에 read(0, s, 0x400)로 입력을 하니 BOF 발생 valiadate(s, 128) 함수를 호출 validator_server __int64..
[Dreamhack] cmd_center #include #include #include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); } int main() { char cmd_ip[256] = "ifconfig"; int dummy; char center_name[24]; init(); printf("Center name: "); read(0, center_name, 100); if( !strncmp(cmd_ip, "ifconfig", 8)) { system(cmd_ip); } else { printf("Something is wrong!\n"); } exit(0); } system 함수로 명령어 실행 -> Command Injection 발생 위험 rea..
[Dreamhack] sint #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30); } void get_shell() { system("/bin/sh"); } int main() { char buf[256]; int size; initialize(); signal(SIGSEGV, get_shell); printf("Size: "); scanf("%d", &size); if (size > 256 || s..
[SWING] Pwnable 06 - Path Traversal Path Traversal 권한 없는 경로에 프로세스가 접근할 수 있는 취약점 리눅스 파일 시스템이 아닌 서비스 로직 관점에서의 권한 사용자가 접근하려는 경로에 대한 검사가 미흡하여 발생 임의 파일 읽기 및 쓰기의 수단을으로 활용될 가능 #include #include #include const int kMaxNameLen = 0x100; const int kMaxPathLen = 0x200; const int kMaxDataLen = 0x1000; const char *kBasepath = "/tmp"; int main() { char file_name[kMaxNameLen]; char file_path[kMaxPathLen]; char data[kMaxDataLen]; FILE *fp = NULL; ..
[SWING] Pwnable 06 - Command Injection 프로그램을 개발할 때 어떤 기능을 구현함에 있어서, 스스로 코드를 작성하기보다 system 함수로 이미 설치된 소프트웨어를 사용하는 것이 훨씬 쉽다는 것은 자명하다. 그러나 함수의 인자를 셸 명령어로 전달하기에, 명령어를 실행해주는 함수를 잘못 사용하면 취약점이 발생한다. Command Injection 사용자의 입력을 시스템 명령어로 실행되게 하는 것 명령어를 실행하는 함수에 사용자가 임의의 인자를 전달할 수 있을 때 발생 임의 IP에 ping을 전송하기: system("ping [user-input]") 임의 파일 읽기: system("cat [user-input]") 사용자의 입력을 제대로 검사하지 않으면 메타 문자 때문에 임의 명령어가 실행 ping [user-input] 실행 시 공격자가 a; ..