0x04 pwnable(130)
-
Protostar Simple Writeup
1. Stack0 #include #include #include int main(int argc, char **argv) { volatile int modified; char buffer[64]; modified = 0; gets(buffer); if(modified != 0) { printf("you have changed the 'modified' variable\n"); } else { printf("Try again?\n"); } } buffer 64바이트 후 1바이트의 값을 조작하면 된다. modified가 buffer뒤에 위치하기 때문이다. 2. Stack1 #include #include #include #include int main(int argc, char **argv) { volat..
2018.04.10 -
Protostar
CLEAR LIST Stack0Stack1Stack2Stack3Stack4Stack5Heap0Heap1Stack6Stack7 NOT CLEAR LIST Format0Format1Format2Format3Format4Heap3Heap4Net0Net1Net2Final0Final1Final2 다 풀어 보자 포너블 진짜 미쳐보자.
2018.04.10 -
system함수 릭한 후 /bin/sh 주소 구하기 (NON ASLR)
#include int main(){int shell = 0x주소; // system주소 while(memcmp((void*)shell, "/bin/sh",8))shell++;printf("%x\n",shell);return 0;}
2018.04.10 -
ROP 제대로 이해될때까지 공부
DEP는 스택에 있는 코드가 실행될 수 없게 만드는 기술 ASLR은 스택, 힙, 모듈 베이스 주소를 랜덤화 : 주소 또는 메모리의 위치를 예측 불가하게 만든다. ROP 체인 구성 기준 1. 전체 함수를 사용하는 대신에 명령어의 연속된 작은 덩어리를 이용한다.2. 명령어 조각은 2개~5개 정도가 적당하다.3. 모든 명령어 조각은 ret로 끝나야 한다. (핵심)4. 명령어 조각들은 'gadget'으로 서로 연결 되면서 명령어 덩어리가 된다.5. gadget은 의도 된 특정 행동을 수행한다.6. 공격자는 gadget를 조합해서 새로운 공격을 수행한다. DEP를 우회하지 않고는 스택에서 점프 혹은 명령어 실행을 절대 할 수 없다. DEP로 보호되고 있는 페이지에서 코드를 실행하려는 시도가 포착되면 접근 위반(S..
2018.04.04 -
pwnable.kr Rookiss simple login
보호되어 있는 글입니다.
2018.03.30 -
pwnable.kr toddler all clear
예전에 풀고 라이트업 적지 않은 것도 적음으로써 토들러 올클리어 하였다. 배운거 상당히 많은 것 같다. 리버싱은 루틴만 잘봐도 몇 시간 지나면 흐름을 알 수는 있었지만, 포너블은 루틴보는 것 + 기본 개념 숙지가 되어야 하는 것 같다. 토들러를 풀면서 몰랐던 개념을 많이 알고 간다. 이제 Rookis 풀러가자. 올 클리어 까지 딱 한달 걸렸다. 2018/02/28 ~ 03/28
2018.03.28