보호되어 있는 글입니다.
simpleArch (Reversing) write-up simpleArch-v1이라는 바이너리를 다운 받을 수 있고, 이 바이너리는 s390x 라는 아키텍쳐를 사용한다.힌드로 simpleArch-v2라는 바이너리가 올라왔는데 이 바이너리는 64bit powerpc 바이너리이다. qemu를 이용해서 simpleArch-v2를 분석했다. 분석에 들어가기 앞서.. apt-get install -y gcc-multilib-powerpc64-linux-gnu apt-get install qemu-user-static apt-get install qemu-ppc64-static qemu와 위의 것들을 설치해주고, qemu-ppc64 -g 12345 /usr/powerpc64-linux-gnu/lib/ld-2.23..
Failure Observation Engine (FOE) 퍼저?CERT에서 만든 바이너리 퍼징 도구.파일을 여러가지 기법으로 변조하여 응용프로그램으로 실행하고 크래쉬 발생 시 이를 수집한다.또한 windbg와 msec 모듈을 사용하여 크래쉬에 대한 EXPLOITABLE, PROBABLY EXPLOITABLE, .. 등 공격 가능성에 대해 분류해준다.최신 버전은 BFF (Basic Fuzzing Framework) 와 FOE 퍼저가 합쳐져서 유용한 크래쉬에 대한 순위도 매겨진다.https://www.cert.org/vulnerability-analysis/tools/foe.cfm? 이 퍼저를 이용해서 Windows 환경에서 퍼징을 돌려서 몇몇 취약점을 찾아냈었는데 안드로이드 앱에서 취약점을 찾고 싶어서 ..
카테고리 BABY’S FIRST 풀이서버에 접속하면 username와 Pass를 입력 받는다. 알맞은 계정을 입력하면 다섯 개의 메뉴를 사용할 수 있다. login 함수를 보면 checkuser 함수와 checkpass 함수로 계정을 검사하는 것을 볼 수 있다. 각각의 함수로 들어가면 입력 값을 어떤 값과 비교하는 것을 볼 수 있는데 확인한 결과 username은 mcfly, pass는 awesnap이다.이 계정을 이용하여 메뉴에 접근할 수 있다. 1번 메뉴인 Request Exploit 은 add_request 함수로 연결된다.56 bytes 만큼을 malloc 해서 reqlist 라는 전역 변수 배열에 할당된 순서대로 포인터를 저장한다. 그 후 힙 영역에 쓸 text를 0x80 bytes 만큼 입력 ..
카테고리 Web (132 solved) 풀이 웹 사이트와 app.py 파일이 주어진다. 웹 사이트에서는 네 개의 입력 칸이 있고 submit 버튼을 누르면 입력한 문자열을 읽어주는 .wav 파일이 생성된다. app.py 를 보면, 입력할 수 있는 tweet의 최대 개수(MAX_TWEETS)는 4개이고 하나의 tweet당 입력할 수 있는 문자의 최대 길이는 140이다. 취약점 `ls` 를 입력하면 ls 명령어가 실행되어 그 결과가 음성 파일로 만들어진다. 커맨드 인젝션이 가능하다. 이제 플래그가 있는 파일을 찾아야한다. find 명령어를 사용해서 flag 파일의 경로를 찾을 수 있다. 하지만 음성을 알아듣기 어려운데, app.py 파일에서 docker_cmd 변수를 보면 -v 옵션으로 컨테이너에서 사용할 ..