------------------------------------------------------------- 문제 발생 환경 ------------------------------------------------------------Ubuntu 16.04 LTS 64bit Server -------------------------------------------------------------- 참고 블로그 --------------------------------------------------------------중간 패스워드 변경부분 참고http://dollipolly.tistory.com/entry/mysql-root-password-%EC%B4%88%EA%B8%B0%ED%99%94 안전모드 패..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
smashme와 동일하게 바이너리 자체에는 어떤 보호기법도 걸려있지 않고, 서버에는 ASLR이 걸려있다. 1번 메뉴와 4번 메뉴에서 malloc으로 할당하는 size는 0x38인데 반해, 입력은 read() 함수를 통해 0x80만큼 입력을 받기 때문에 Heap Overflow가 발생한다. Heap에 할당된 영역을 2개 이상 해제하게 되면 binlist에 들어가게 되어, fd와 bk에 heap 영역의 주소가 들어가는데 이 주소를 leak하여 공격에 사용할 수 있다. RIP 변조는 조금 더 과정이 필요하다. 해제된 chunk의 fd를 할당된 heap address가 저장되는 전역 변수인 reqlist로 변조하면 다음에 추가로 heap을 할당할 때 reqlist의 위치에 heap이 할당이 되어 reqlist ..
바이너리에 그 어떠한 보호기법도 걸려있지 않고, 서버에는 ASLR은 걸려있는걸로 예상하고 시작하였다. 문제의 main 함수에는 gets() 함수를 통해 buffer에 입력을 받기 때문에 Buffer Overflow 취약점이 존재한다. 하지만, 이름 smashme인 것처럼 sub_400320() 함수 때문에 그냥 되진 않는데, 저걸 무사히 통과해서 Return Address에 접근해 종료되도록 만들면 된다. 조금 디버깅해보면 __strstr_sse2_unaligned() 함수의 시작부분에서 rsi 레지스터에서 1바이트씩 가져와 확인을 하는 모습을 볼 수 있다. rsi에 있는 문자열을 살펴보면 조금 수상한 문자열이 들어있는데, 이 문자열이 키워드이다. 해당 문자열 뒤에 문자열을 추가하여 입력을 하면 Segm..
how2heap : https://github.com/shellphish/how2heap 들어가기 전...- chunk address는 chunk의 헤더 시작 주소- heap address는 malloc을 통해 사용자에게 반환되는 heap 주소----------------------------------------------------------------------------------------------------------------------------------------fastbin dup 12345678910111213141516171819202122#include #include int main(){ int *a = malloc(8); int *b = malloc(8); int *c = ..
Peda : gdb 업그레이드$ git clone https://github.com/zachriggle/peda.git ~/peda$ echo "source ~/peda/peda.py" >> ~/.gdbinitcs Peda-heap : Peda에 heap 분석용 커맨드 추가$ git clone https://github.com/Mipu94/peda-heap ~/peda-heap$ echo "source ~/peda-heap/peda.py" >> ~/.gdbinitcs pwndbg : Peda 옆그레이드, Peda나 pwndbg 중 택1 how to install 12git clone https://github.com/pwndbg/pwndbg; cd pwndbg./setup.shColored by Colo..
참고용 link : http://tribal1012.tistory.com/78 이 글은 ptmalloc2에 대한 내용입니다. 계속 작성 중.....--------------------------------------------------------------------------------------------------------------------------------------용어 설명Arena : Main을 포함한 모든 각 Threads에 대한 힙 영역이라고 할 수 있다. 모든 Threads가 각자의 Arena를 가지진 못 하고 32bit와 64bit System과 시스템의 Core 갯수에 따라 Arena의 갯수에 제한(모든 Thread에 대해 할당하다간 자원 고갈이 심각할 것임)이 있고, 제한..
cgi 실행을 위한 설정$ vim /etc/apache2/apache2.conf......... ScriptAlias /cgi-bin/ /var/www/html/cgi/cgi-bin/ Options +ExecCGI AddHandler cgi-script .cgi $ a2enmod cgi$ service apache2 restartcsapache 설정 파일인 /etc/apache2/apache2.conf에 아래의 내용 추가CGI 파일을 실행하는 옵션과 스크립트 파일은 .cgi 파일이라고 정의해줌a2enmod cgi (이것때문에 안 된다고 얼마나 삽질을 했는지.... 후...)apache2 서비스 재시작추가 : 검색해보면 여러 다양한 설정파일을 건드리는데 그냥 그 중 하나면 되는거 같다. 어차피 전부 설정 ..
Code1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283#!/usr/bin/python#-*- coding:utf-8 -*-from time import sleepimport reimport urllib2 url = "http://trillion.tribal.kr?page=index.php" def datasort(data): del data[0] del data[1] temp = data[1] temp = re.findall(r"[\s]*([\w\W]+?)[\s]*", te..