**Write up二二网六**
MISC
不要被迷惑:
下载zip 解压后发现有个flag10.pcap
因为是前面几题 所以直接选择导出http对象梭哈
发现有个flag.zip 直接导出
发现有密码 根据提示直接爆破 获得密码:123321
解压后有个10.txt
是jjencode编码 https://www.qtool.net/decode
得到flag
PCAP文件分析:
获得一个压缩包 解压后发现有一个04.pcapng和flag.pcapng
先打开flag.pcapng 同上一题一样直接导出flag.zip这个对象
然后解压缩 在txt中发现被骗了
再打开04.pcapng 导出04.zip和4.png
4.png中有串字符 猜测是压缩包密码:vt89&Wh
解压后得到flag4.png 看上去没什么东西
用010editor打开发现crc宽高报错
直接修改宽高在图片中得到flag: rudms90fjb34mfjuifnrb5nfmw4efd2m
平正开:
得到压缩包 直接打开发现报错
用010editor打开发现都是乱码
但是看到首字母的B0
发现B0+50=256
猜测这些数据是由256减去一个50 4B开头的压缩包
写一个脚本进行转换:
'''task.py'''
f=open(r'C:\Users\25722\Downloads\flag44c099db1.zip','rb').read()
for i in f:
if i==0:
j=0
else:
j=256-i
j=hex(j)[2:].zfill(2)
print(j,end='')
用010的导入16进制文本功能
打不开之后发现是伪加密
修改成如图所示:
解压后发现社会主义核心价值观编码
解码后发现flag:flag{bgw5yfteqcr7kp9audojs8m1lzi2nx63}
WEB
md5_php
打开环境后查看源代码,根据
m
d
5
=
=
m
d
5
(
md5==md5(
md5==md5(md5)是弱比较,当md5开头为0e时,系统会认为是科学计数法,从而实施弱比较,写爆破脚本得到0e开头数据且md5开头也为0e的数据,0e215962017
将0e215962017通过get传参,得到
代码意思为既要要阅读包含index,good,luck的一个文件,使用php://filter伪协议套协议,构造php://filter/convert.base64-encode/index/resource=flag得到
下面为flag的base64密文,得到flag。
命令执行
打开后只有个ok
随便遍历文件根据报错发现是string框架
去网上搜索对应漏洞,得到
使用exp.py导入后门
进行命令执行,输入find / -name flag遍历最后在/var中找到flag
PHP反序列化2
打开后是反序列化
危险函数应该是evil类中的action方法,main类中的__destruct()调用了action方法,在__construct()中可以看出它创建了一个normal类的对象,然后调用的是normal类中的action方法。创建一个evil类的对象然后把它赋值给ClassObj属性,在main类里面写一个__construct()来完成,构造payload
因为过滤了flag,所有用通配符?代替单个字符,在a中传入O%3A4%3A%22main%22%3A1%3A%7Bs%3A11%3A%22%00%2A%00ClassObj%22%3BO%3A4%3A%22evil%22%3A1%3A%7Bs%3A10%3A%22%00evil%00file%22%3Bs%3A20%3A%22system%28%22cat+%2Ffla%3F%22%29%3B%22%3B%7D%7D
得到flag
Phpti
根据hint打开sessionti1.php
这里要求password=admin,但是password的值已经设置好了,反序列化字符逃逸使得原本的密码不被反序列化。先进行序列化,在本地测试,可以将密码先改为admin,然后进行序列化,需要吞掉的部分是";s:8:“password”;s:5:“yu22x”;}这是30个字符,每替换一次增加2个字符,所以需要15个phpinfo()才可以,所以构造payload
O:1:“a”:2:{s:5:“uname”;s:1:“?1=phpinfo()phpinfo()phpinfo()phpinfo()phpinfo()phpinfo()phpinfo()phpinfo()phpinfo()phpinfo()phpinfo()phpinfo()phpinfo()phpinfo()phpinfo()”;s:8:“password”;s:5:“yu22x”;}";s:8:“password”;s:5:“admin”;}
然后题目展示flag.php的代码
查看后发现没有反序列化上传点,考虑用文件上传。观察发现链表中$this->root要为print_r(scandir(dirname(FILE)));才显示flag,构造payload
得到
O:5:“admin”:1:{s:4:“root”;s:36:“print_r(scandir(dirname(FILE)));”;}
本地运行文件上传代码
Burpsuite抓包上传
将此处修改,且加上|,符合session的格式,上传后得到flag
Reverse
re2
1.先对exe程序进行操作,变为pyc
再使用uncompyle库操作来把pyc文件转换位py文件
通过定位找到关键语句代码
把score修改为0再运行
得到flag