본문 바로가기

전체 글

(71)
authenticate read_flag에서 authenticated가 0이 아닌 값이 있어야 flag가 출력된다. authenticated의 주소는readelf -s auth0x804a04c 0x804a04c에 0이 아닌 값을 넣어야 하는데printf(%s)를 보아하니format String Bug를 이용하는 것 같다. 일단 AAAA를 입력해 어디에 있는지 찾는다. 12번째에 있다. 입력한다. 꿀
ELF 파일 구조 ELF란?실행 가능한 바이너리 또는 오브젝트 파일 등의 형식을 규정한 것이다. ELF파일 = ELF헤더 + 프로그램 헤더 테이블 + 섹션 헤더 테이블 오프젝트 파일은 세가지 종류가 있다. - 재배치 가능한 파일(relocatable file) : 코드와 데이터를 다른 오브젝트 파일과 링킹될 수 있도록 함- 실행 파일(executable file) : 코드와 데이터를 타겟 운영체제에서 실행시킬 수 있도록 함- 공유 오브젝트 파일(shared object file) : 재할당 가능한 데이터를 정적 혹은 동적으로 다른 공유 오브젝트들과 공유할 수 있도록 함 Linking View Execution View * readelf로 elf 파일 형식 확인 간단히 설명하자면,1. ELF 헤더 : 파일의 구성을 나타내는..
간단한 정리 RTL return to library 의 약자이고 linux에서는 return to libc라고 불린다.(linux에서 library가 libc)DEP/NX를 우회하기 위한 기법 이 기법을 이용하면 프로그램에 system()가 없어도 라이브러리의 system()를 호출하여 사용이 가능하다. 이 기법을 익히기 전에 먼저 알고가야할 것들이 있다. 바로 plt와 got.plt = procedure linkage table, got = global offset table plt란?사용자가 만든 함수는 plt를 참조할 필요가 없지만 외부 라이브러리에서 가져다 쓸 경우 plt를 참조하게 된다. 예를 들어 우리가 바이너리에서 만든 함수들 (main(), func() 등)은 plt를 참조할 필요가 없다. got란?실..
keygen-me1 32bit elf파일이다. main check_valid_key check_valid_char validate_key ord 조건1. 모든 문자가 '0'~'9' 이거나 'A'~'Z' 이어야 한다. 2. v2 % 0x24 == (char)ord(s[v4-1])이 true 여야 한다. * v2는 입력한 16개의 문자중 15개를 계산해서 더한 값 validate_key는 따로 코드를 짜서 확인한다. "A" 16개 입력 14가 부족하기 때문에 "A"보다 14 큰 "O"를 맨 뒤(s[v4-1])에 입력한다. 꿀
assembly4 Can you find the flag using the following assembly source? WARNING: It is VERY long… 캡처를 할 수 없을 정도로 어셈블리 코드가 매우 길다. 간단히 main함수 끝에 결국엔 뭘 반환하는 지 알면된다. nasm -f elf32 comp.nasm -o comp.ogcc -o comp comp.o -m32./comp 꿀
assembly3 What does asm3(0xf238999b,0xda0f9ac5,0xcc85310c) return? end_asm_rev.S 이 파일을 공유 라이브러리로 만들고 asm3 함수를 export하면 된다.nasm 어셈블러 사용 : 'PTR'을 삭제하고 첫번째 줄을 밑에 처럼 수정한다. 그리고 라이브러리를 export하는 C프로그램을 짠다. 1. nasm을 사용하여 목적 파일 생성 ( -f : 출력 파일 형식 지정)2. C 프로그램과 생성한 목적 파일 같이 링크해서 컴파일 nasm -f elf32 end_asm_rev.S -o asmfun.ogcc sol.c asm.o -o sol -m32 ./sol
Puzzle #6: Ann's Aurora Vick Timmes의 원래 웹 요청의 전체 URI는?(포트 포함) 정답 : http://10.10.10.10:8080/index.php 이에 대응해 악성 웹서버는 JavaScript 보냈다.이 코드의 시작 부분 근처에 공격자가 "COMMENT"라고 표시된 1300개의 요소가 있는 배열을 만든 다음 데이터 요소에 문자열을 채웠다.이 문자열의 값은? 정답 : "vEI" Vick컴퓨터는 객체에 요청 2개 보냈다.a. 요청된 객체의 파일 이름?b. 반환된 객체의 MD5sum? 요청 2개 a 정답 : index.phpmfKSxSANkeTeNrah.gif 2번째로 10.10.10.10에 반환된 파일을 Raw로 저장해 "GIF"앞 문자열을 다 잘라낸다. b 정답 : df3e567d6f16d040326c7a0ea29..
Puzzle #5: Ms. Moneymany's Mysterious Malware Moneymany의 브라우저가 다운로드한 .jar파일 2개는? filter : http 정답 : q.jar, sdfg.jar 감염된 windows 시스템에서 Moneymany의 사용자이름은? 정답 : ADMINISTRATOR Moneymany가 처음 클릭한 URL? 맨 처음 http통신을 클릭해보면 정답 : /nrtjo.eu/true.php Moneymany의 시스템을 감염시키는 Winodws 실행파일의 MD5해시는?힌트: "91ed"로 끝남 filter : Packet details - String - .exe 보낸 파일의 내용을 보면 실행 파일의 매직 넘버인 "MZ"가 보인다. hxd로 열어 "MZ"앞에 내용을 잘라버린 뒤 .exe확장자로 저장 해시 값 확인하면 정답 : 5942ba36cf732097..