1.查壳,无壳,64位。
2.IDA反编译。
文章图片
逻辑:从最后的输出可知flag为v12,而v12是由v9与dword_6020C0的异或得来的。
v9是用srand和rand随机生成的伪随机数,并且这组伪随机数还要经过MD5加密5eba99aff105c9ff6a1a913e343fec67相同才可以。
可以根据前面的代码算出一组seed(种子)。
文章图片
3.exp
(1)生成seed(一部分)。
文章图片
(2)生成随机数。
注:题目文件是elf文件是在linux系统上的可执行文件所以生成随机数要在linux系统上编译运行。
相同种子的随机数在两个系统中值不同。
windows系统:
文章图片
linux系统:
文章图片
(3)解密(总)。
import random
import subprocess#生成seed组
seed=[]
for i in range(65537):
a=0
seed.append(i)
while i:
i&=i-1
a+=1
if a!=10:
seed.pop()#爆破
for i in seed:
p=subprocess.Popen('/home/donstpast/Desktop/zorropub',stdin=subprocess.PIPE,stdout=subprocess.PIPE)
out = p.communicate(('1\n%s\n'%i).encode('utf-8'))[0]
if "nullcon".encode('utf-8')in out:
print(out)
print(i)
文章图片
文章图片
4.get flag
nullcon{nu11c0n_s4yz_x0r1n6_1s_4m4z1ng}
【攻防世界|攻防世界——zorropub】
推荐阅读
- 渗透测试|Linux提权
- 综合渗透测试|网络安全——使用SSH私钥泄露提权获取主机权限
- 内网安全——域横向内网漫游
- 安全|生成自签名证书(生成证书和秘钥)
- crypto|2.流密码 Stream ciphers
- web笔记|HFish 蜜罐安装及使用
- 白帽子讲Web安全|【白帽子讲Web安全】第一章 我的安全世界观
- 内网渗透|内网渗透---反弹shell详解(内有各种姿势的详细过程)
- 内网渗透|内网渗透(nc反弹shell总结)