[Dreamhack] ssp_000
#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(int argc, char *argv[]) { long addr; long value; char buf[0x40] = {}; initialize(); read(0, buf, 0x80); printf("Addr : "); scanf..
[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] basic_exploitation_002
환경 정보를 보면 NX 보호기법이 활성화되었다. #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(int argc, char *argv[]) { char buf[0x80]; initialize(); read(0, buf, 0x80); printf(buf); exit(0); } m..