拿到题目,依旧还是老样子,查看程序开启的保护和位数

可以看到程序开启了nx保护是32位程序,于是我们把程序放入ida32编译一下

一打开就能看到非常明显的get_flag这个程序,f5观察伪代码

当a1和a1都等于相应的值后就可以获取到flag,再查看main函数

gets存在明显的栈溢出

我刚开始想的是直接在ret处用 v2 = fopen("flag.txt", "rt")的地址覆盖,后来发现远程链接不能获取到flag,所以只好用别的办法

观察汇编代码可以看到,程序将308cd64fh和195719d1h处的值进行比较,所以这俩个地址就是a1和a2的值所以我们可以在ret函数用get_flag的地址覆盖,然后传递上这俩个参数也可以获得flag

完整的exp如下:

注意:0x0804e6a0是程序exit的地址,只有程序能够正常退出才能正确的回显flag(远程感谢一下get_started_3dsctf_2016 - 不会修电脑 - 博客园 (cnblogs.com)

还有第三种方法是通过mprotect函数赋给权限,不过我暂时并未尝试(还是我又菜又懒....)

结束

get_started_3dsctf_2016 1的更多相关文章

  1. get_started_3dsctf_2016

    题外:这道题不是很难,但是却难住了我很久.主要是在IDA中查看反编译出的伪代码时双击了一下gets()函数,结果进入gets函数内部,我当时就懵了,误以为这是一个自定义函数,但是自定义函数应该应该不能 ...

  2. [BUUCTF]PWN11——get_started_3dsctf_2016

    [BUUCTF]PWN11--get_started_3dsctf_2016 题目网址:https://buuoj.cn/challenges#get_started_3dsctf_2016 步骤: ...

  3. Buuctf刷题:部分

    get_started_3dsctf_2016 关键词:ROP链.栈溢出.mprotect()函数 可参考文章(优质): https://www.cnblogs.com/lyxf/p/12113401 ...

  4. get_started_3dsctf_2016-Pwn

    get_started_3dsctf_2016-Pwn 这个题确实有点坑,在本地能打,在远程就不能打了,于是我就换了另一种方法来做. 确这个题是没有动态链接库,且PIE是关的,所以程序的大部分地址已经 ...

  5. [BUUCTF-Pwn]刷题记录1

    [BUUCTF-Pwn]刷题记录1 力争从今天(2021.3.23)开始每日至少一道吧--在这里记录一些栈相关的题目. 最近更新(2021.5.8) 如果我的解题步骤中有不正确的理解或不恰当的表述,希 ...

  6. [BUUCTF]PWN14——not_the_same_3dsctf_2016

    [BUUCTF]PWN14--not_the_same_3dsctf_2016 题目网址:https://buuoj.cn/challenges#not_the_same_3dsctf_2016 步骤 ...

  7. BUUCTF-PWN-第一页writep(32题)

    温故而知新,可以为师矣.所以花了几天时间重新做了下 buuctf 的 pwn 题,先发下第一页共 32 题的题解.还有如果题解都很详细那么本文就太长了,写起来也浪费时间,所以比较简单的题就直接丢 ex ...

随机推荐

  1. C++的重载操作符(operator)介绍

    原文转载至:https://blog.csdn.net/liitdar/article/details/80654324 https://blog.csdn.net/liitdar/article/d ...

  2. Tomcat无法启动解决办法

    [2014-04-12 12:34:39] [error] [ 1080] 操作系统找不到已输入的环境选项. [2014-04-12 12:34:39] [error] [ 1052] Failed ...

  3. 十本你不容错过的Docker入门到精通书籍推荐

    前言: 最近有许多小伙伴私信让我推荐几本关于Docker学习的书籍,今天花了一下午的时间在网上查阅了一些资料和结合自己平时工作中的一些学习参考资料书籍写下了这篇文章.注意以下书籍都是十分优秀的Dock ...

  4. docker详细

    镜像(image) 容器(container) 启动,删除,停止 仓库(repository)   docker images  

  5. springboot和springcloud版本上的选择

    现在的springboot项目和cloud版本都是更新很快,但我们开发不是版本越新越好,我们要把版本对应起来,那么我们怎么去关联呢? springboot和springcloud不是越新越好,clou ...

  6. vue的常用指令

    https://www.bootcdn.cn/ 前端资源库 <!-- 常用内置指令 v:text : 更新元素的 textContent v-html : 更新元素的 innerHTML v-i ...

  7. ICCV2021 | Swin Transformer: 使用移位窗口的分层视觉Transformer

    ​  前言  本文解读的论文是ICCV2021中的最佳论文,在短短几个月内,google scholar上有388引用次数,github上有6.1k star. 本文来自公众号CV技术指南的论文分享系 ...

  8. 记一次使用 SelectMany 的经历

    最近在改造一个功能时为了减少循环的层数,于是想着将List列表映射为一个能直接使用颗粒大小的List列表,这样一层循环就可以解决问题.     public class ConflictWordIte ...

  9. Pacbio三代基因组组装简介

    参考: 视频PPT来自欧易生物讲座:如何开启一个动植物基因组三代de novo项目?

  10. JavaBean内省与BeanInfo

    Java的BeanInfo在工作中并不怎么用到,我也是在学习spring源码的时候,发现SpringBoot启动时候会设置一个属叫"spring.beaninfo.ignore", ...