强国杯半决赛东部赛区部分wp

                **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
在这里插入图片描述

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值