본문 바로가기

Security_/pwnable11

[Pwnable.kr] random 풀이 srand를 안쓰므로 실행 할 때마다 랜덤값이 고정이다. $rbp-0x8은 내가 입력한 0이고, $rbp-0x4는 고정 random 값이다. key ^ random 값이 0xdeadbeef와 같아야 하기 때문에 0xdeadbeef ^ 0x6b8b4567 을 하면 내가 입력해야할 값이 나온다. (0xB526FB88) int형으로 넣어줘야하기 떄문에 0xB526FB88을 정수로 바꾸면 3039230856이 된다. 2022. 2. 19.
[Pwnable.kr] passcode 풀이 (#GOT Overwrite) 오랜만의 pwnable.kr 이당.. C언어로 작성한 코드를 컴파일 할 때 에러는 없었고 경고는 나왔다고 한다.. passcode로 접속을 해보자. #include #include void login(){ int passcode1; int passcode2; printf("enter passcode1 : "); ##################################################### scanf("%d", passcode1); # >> scanf("%d", &passcode1); ##################################################### fflush(stdin); // ha! mommy told me that 32bit is vulnerable .. 2022. 2. 13.
checksec 설치 git clone https://github.com/slimm609/checksec.sh cp ./checksec.sh/checksec /usr/local/bin/ 2022. 2. 1.
ropgadget 설치 sudo pip install ropgadget sudo pip3 install ropgadget 2022. 2. 1.
one-gadget 설치 sudo apt-get install ruby-full gem install one_gadget 2022. 2. 1.
gdb - peda 설치방법 gdb 설치 sudo apt-get install gdb -y peda 설치 git clone https://github.com/longld/peda.git ~/peda echo "source ~/peda/peda.py" >> ~/.gdbinit 2022. 2. 1.
[Pwnable] Gadget 구하기 ROPgadget (POP RET Gadget) $ ROPgadget --binary [실행 파일] | grep "pop rdi" 0x0000000000000aa3 : pop rdi ; ret objdump (.bss Section) $ objdump -h [실행 파일] | grep .bss 23 .bss 00000020 0000000000201010 0000000000201010 00001010 2**4 $ bss = 0x0000000000201010 One Gadget / Magic Gadget $ one_gadget /lib/x86_64-linux-gnu/libc-2.31.so 0xe6c7e execve("/bin/sh", r15, r12) constraints: [r15] == NULL || r1.. 2022. 1. 29.
[Pwnable] ROP 정리 파일 32bit # read(0, read_got, 0x4) payload += p32(read_plt)# 함수 이름 : read_plt paylaod += p32(pppr)# 인자 개수 : pop pop pop ret payload += p32(0)# 인자 1 : 0 payload += p32(read_got)# 인자 2 : read_got payload += p32(0x4)# 인자 3 : 0x4 64bit # read(0, read_got, 0x8) paylaod += p64(pppr)# 인자 개수 : pop pop pop ret payload += p64(0)# 인자 1 : 0 payload += p64(read_got)# 인자 2 : read_got payload += p64(0x8)# 인자 3 : 0.. 2022. 1. 29.
gcc 메모리 보호 기법 해제 gcc -m32 -fno-stack-protector -mpreferred-stack-boundary=2 -z execstack -no-pie -fno-pie -o [filename] [filename].c fon-pie를 해야 PIC 코드가 안생긴다. * -m32가 있어 32비트 실행파일로 컴파일 된다. -m64로 바꾸면 64비트 실행파일로 컴파일 가능. 2021. 12. 16.
[Pwnable] pwnable 문서 모음 [Pwnable] 1. TechNote (페이지트리의 TechNote에 들어가면 여러가지 BOF 유형을 볼 수 있다.)https://www.lazenca.net/display/TEC/TechNote 2. 달고나 BOF.pdf (pdf에 제작자 표기되어 있습니다.) 3. Seobbung FSB.pdf (pdf에 제작자 표기되어 있습니다.) 2019. 1. 27.
[Pwnable] Fake EBP 정리 [Fake EBP] ebp를 속이는 기법으로 sfp를 조작 가능하고, ret의 값을 leave / ret 가젯의 주소로 변경이 가능할 때 이용한다.즉, ebp를 속이고 leave / ret를 한번더 실행시키는 기법 이 기법의 핵심은 함수의 에필로그 부분을 이용하는 것이다 leavemov esp, ebppop ebp retpop eipjmp eip 원리1. (leave) mov esp, ebp 를 통해서 esp를 ebp로 이동시킨다.2. (leave) pop ebp 를 통해 변조된 ebp를 꺼낸다.3. (ret) pop eip 를 통해 eip는 leave / ret 를 가리킨다. 즉, ret에 leave / ret 가젯이 들어있어야한다.4. (ret) jmp eip 를 통해 leave / ret 가 한번더.. 2018. 11. 6.