[Dreamhack] oob
문제 링크 https://dreamhack.io/wargame/challenges/1415 문제 설명 out of bound! 문제 분석 1번 메뉴는 bss 영역의 oob 배열로부터 인덱스 기반으로 1바이트씩 값을 읽을 수 있고, 2번 메뉴는 인덱스 기반으로 8바이트씩 값을 쓸 수 있다. 인덱스 검사가 전혀 없으므로, 음수...
문제 링크 https://dreamhack.io/wargame/challenges/1415 문제 설명 out of bound! 문제 분석 1번 메뉴는 bss 영역의 oob 배열로부터 인덱스 기반으로 1바이트씩 값을 읽을 수 있고, 2번 메뉴는 인덱스 기반으로 8바이트씩 값을 쓸 수 있다. 인덱스 검사가 전혀 없으므로, 음수...
문제 링크 https://dreamhack.io/wargame/challenges/1343 문제 설명 “All user input is error.” - Elon Musk 문제 분석 no-input 바이너리는 root 소유 setuid 바이너리이며, 다음과 같은 동작이 수행된다. init 함수에서 setreuid, setr...
libc base를 알고 있고, 임의 주소 읽기/쓰기가 가능할 때에는 libc의 environ을 활용할 수 있다. environ environ은 glibc의 전역 변수로, 프로세스의 현재 환경 변수 목록을 가리키는 포인터이다. #include <stdio.h> #include <unistd.h> ext...
문제 링크 https://dreamhack.io/wargame/challenges/1249 문제 설명 We made a nice “sandbox” program. feel free to attack our service :) 문제 분석 2번을 선택하는 경우, 최대 0x80바이트만큼의 shellcode를 입력 후 실행할 수 있다. 실행하기 전 ...
문제 링크 https://dreamhack.io/wargame/challenges/1071 문제 설명 산타 할아버지가 크리스마스를 맞아 드림이들을 모두 집에 초대해서 선물을 나눠주신대요! 착한 아이는 어쩌면 비밀스러운 선물을 받을 수 있을지도 몰라요. 시간은 넉넉하니 산타 할아버지 댁에서 여유롭게 즐겨주세요! 혹시 필요하다면 pwntools 익스플...
문제 링크 https://dreamhack.io/wargame/challenges/1042 문제 설명 Description Solved by two people together, but one monitor, one keyboard, each. Might be better if done alone! FYI flag length = 33 timeou...
문제 링크 https://dreamhack.io/wargame/challenges/1029 문제 설명 :( Dahun is sad 문제 분석 main 함수 초반에 srand() 함수를 호출해 시드값을 설정하는데, 2바이트 정수로 설정하므로 브루트포싱을 통해 시드를 때려맞출 수 있다. 시드 값이 일치할 때 rand() 함수로...
익스플로잇에 성공하였으나, 문제점이 있다. 환경이 변화하는 경우(Windows 업데이트 등) KERNEL32.dll의 WinExec 함수 오프셋이 변경되어 익스플로잇에 실패할 수 있다. 어떤 환경에서든 성공할 수 있도록 Universal한 셸코드를 작성해야 한다. DLL은 자신이 어떤 함수들을 Expor...
익스플로잇 셸코드 작성을 완료했으니, 익스플로잇을 해보자. Access Violation이 발생했을 당시의 레지스터 상태 esp 레지스터가 0x16f30c로 되어 있다. ASLR이 적용되지 않으므로 스택 주소는 언제나 동일하다. 혹시 스택 오프셋이 일부 변하는 경우를 생각하여 NOP Sled와 함께 셸코드를 입...
취약점을 확인했으니, 셸코드를 작성해보자. Shellcode - 32bit Linux와 달리 Windows는 사용자가 직접 시스템 콜을 호출하는 것이 어려우므로, KERNEL32.dll의 WinExec 함수를 이용하여 cmd를 실행하는 셸코드를 작성하는 것을 목표로 한다. WinExec 함수를 호출하려면, KERNEL32.dll 라이브러리가...