前言
这是i春秋学院百度杯十一月末最后一场比赛的write up,以战国魏事记为故事背景,由4个小故事:三家分晋、败走邯郸、鬼谷门徒、窃符救赵组成。答题者需要破解这些密码,才能拿到最后的flag。
出题背景
1. 三家分晋
赵襄子,韩康子与魏桓子的商议被智伯的间谍偷偷记录了下来,所有的信息都在存储在下面的pcap包中,你能找出他们谈论的内容吗?
2. 败走邯郸
齐将田忌、孙膑率兵围攻魏国国都大梁,途径一险关,有重兵把守,孙膑计上心头,决定伪造了魏王手谕,以期兵不血刃地拿下该据点。你能帮助他们伪造一封魏王的手谕吗?
3. 鬼谷门徒
孙膑知道,要想击败庞涓,不仅要让他被胜利冲昏头脑,无法保持清醒,更重要的是要利用庞涓用兵布阵的缺陷,请帮助孙膑击败庞涓。
4.窃符救赵
魏王宠妾如姬为了帮助信陵君夺取兵符,潜入魏王寝宫。但是当年魏王 为了预防兵符被盗,命人打造了许多形状一样,但与真兵符材料不同的假兵符,所以信陵君每次从如姬那取到的都是假兵符。那么,信陵君如何才能得到真的兵符呢?
开始答题
签到题
Md5解密得admin
小常识
按照题目要求
0x94 = 148
0x4664 = 18020
Flag{148,18020}
回归原始
八位一组,2进制转换成10进制然后转字符得flag
挑战题-战国魏事记
挑战题·战国魏国
第一关
下载pcap数据包后用wireshark打开
发现有很多请求以HTTP请求为主
筛选http请求
前几个是访问第一关的请求
往下拉发现有很多一样的请求
随便打开其中一个
发现了user-agent为sqlmap,可以知道此时正在用sqlmap进行注入
继续观察发现可注的参数中cookie的user参数最为可疑
但是经过了一些编码
经过多次测试编码方式为先base64编码在进行rot13编码所以我们可以反向解码
Wireshark没找到比较好的方法去批量导出特定数据,所以用python直接对文件进行明文查找
取出cookie中user参数值进行解码
得到明文注入语句
看payload可知,正在用时间盲注注入message表sqlmap的注入特点是当找到正确的字符时会进行!=不等于判断,所以可以查找这个关键字
修改一下脚本
得到密码,最后的0需要去掉是uid的值,我们需要的是message字段值
最后提交获得下一关地址
my_password_is_ilovedaliang
第二关
下载txt文件
是一段php代码这个代码其实是第三关的源码,在这一关我们可以不用管它是什么内容
下载后紧接着上传这个文件 看提示什么
提示:校验时是有一段salt值
接着找到一个备份文件
POST提交饶过waf
用vim -r ***.swp恢复一下得到
这里给出了默认的salt是ilovedaliang,或者你可以自定义salt
我们在尾部直接添加ilovedaliang试试
添加尾部数据时最好用python写入因为最后面有rn 直接编辑的话会覆盖掉
但是还是失败了,提示:
文件不能相同
所以意思很明白了,需要给出内容不一样但md5一样的
这里用win下的一个md5碰撞工具
fastcoll_v1.0.0.5.exe
需要你给出一个前缀文件,程序会生成两个md5一样的文件并且前缀文件内容不变
接着选msg1文件进行上传然后,取出msg2的后缀内容用postfix_salt参数请求
url把0x换成百分号
burp提交
得到第三关地址
第三关
页面没有什么提示
Set cookie user
想到第二关的txt文件
读代码发现有很多看似没有用的代码 而且strpos这里饶不过去
这里其实要利用一个刚爆不久的cve漏洞
发现这里有点可疑,我是从来没有用过,会不会是这里导致的漏洞?于是用这个函数关键字搜索
这里给出了一个测试脚本,发现测试脚本的代码跟 txt里的很相似,证明了txt中那些看似没用的代码其实都是漏洞触发的前提
直接用文中给出的序列化字符串提交就可以到下一关
第四关
需给出ip port imgurl 猜测后台会发送请求
但是测试发现给出外网ip后一直加载最后挂掉 vps 上也没有收到请求
但是127.0.0.1是不会挂掉
猜测无法出外网
那测试一下看有没有命令注入
路径猜测为默认路径,提交
成功创建,证明有命令注入漏洞
接着写入一句话
用base64解码写入
刚开始一直没找到flag文件,后面搜索了一下
原来是在代码文件里面
End

评论