这个清明闲着没事和队友偷偷跑去打福州大学的线上校赛。整体下来打的还是很开心的。福大的师傅人很好,发现我们是校外的也就只是让我们换个号打,不要交flag,整体下来题目对web手来说还是比较友好的,对PWN手可能就不太友好了。还是能学到不少的下面是wp

ping一下~

签到题没什么好说的直接管道符加命令执行就可以了。

被你们玩坏了的ping

和上一题相比只是没有回显而已,一开始我准备弹shell后面发现弹不了就直接DNS外带了。

吃掉小土豆

福大的题目都是有给源码的,如果题目没有给哪个代审的工具网站那么难度是有的,但是给了,用工具可以一眼看出是sql注入,注入点是$_session[name]


而session是在rank.php下直接GET传值的。在简单的手测后发现位报错注入

can_u_find_me?

我们查看一下源码会发现404窗口的报错页面位模板注入。


我们看一下waf

1
2
3
4
5
def waf(s):
for i in blacklist:
if i in s.split('/')[-1]:
return s + '?hacker'
return render_template_string(s)

这个waf检测的最后一个/那么我们只要在url后加上url/{{7*7}}/
这样就可以绕过这个waf了剩下的就是普通的ssti了

Potato_Netdisk

网盘这两题给我笑啦了。全都可以非预期。最主要的是非预期的原因是少了个括号。难绷。但是后来在我的反馈下把这个非预期给修了。这里贴一下出题人看到这个非预期后的反应。


保护出题人隐私手动打个码,嘿嘿。
好了要正经写wp了
首先看源码会发现其将我们的照片上传到了预设定的路径,那么我们的思路就是将文件上传到web目录下。我们先上传一个名位../的来看看waf的反应。其回显如下

可以发现其物理路径发生了泄露,那么这时我们能想到如果可以进行拼接构造出/tmp/upload/../../var/www/html/1.php不就可以把1.php传到html目录下了吗?
但是我们看源码会发现其都设了waf我们无法直接上传这个文件名进行拼接

1
2
3
4
5
6
7
function validateFilePath($path): void
{
if(str_contains($path,'..'.DIRECTORY_SEPARATOR) || str_contains($path,'/var/www/html'))){
http_response_code(403);
die("非法上传路径!".'<br>'.$path);
}
}

我们继续进行代码审计查看一下文件夹上传的代码
在文件夹上传的源码里可以发现如下代码
1
2
3
4
5
6
7
function normalizeFilePath($path): string
{
if(strpos($_SERVER['HTTP_USER_AGENT'], 'Windows')){
return str_replace('\\','/',$path);
}
return $path;
}

可以发现其将\转换成了/那么我们就有点想法了,可以将所有的/变为\来尝试上传。如下
1
..\\..\\var\\www\\html\\lalalala.php

会发现上传成功。接下来就是蚁剑连马了。

Potato_Netdisk_v2.0

这题和上一题区别不大,唯一的区别就是会删马和waf更强一点

1
2
3
4
5
6
7
function validateFilePath($path): void
{
if(str_contains($path,'..'.DIRECTORY_SEPARATOR) || str_contains($path,'/var.www.html'))){
http_response_code(403);
die("非法上传路径!".'<br>'.$path);
}
}

在简单手测后发现无法使用上一题的paylaod进行上传。
可是这个问题也不大。我们进行简单的修改进行尝试
1
..\\..\\var\\www\\..\\www\\html\\lalalala.php

我们在其中添加一个..\\来对其进行中断就可以成功上传拉。

ROIIS_blog

哈哈又是一个cve。这题的cve还后并没有对源码进行修改,我们只要按照网上的步骤来打即可。
打开网站
点击功能的文章发现其直接泄露了框架的版本

框架名为WordPress。版本为4.6很老的版本了连cve都是16年的。这里我就不再写一遍了。出了配置vps会麻烦一点其他都很简单。

ezzzzzzzzz_PTA

感觉出题人有点懒了也可能是出题人只有一个的原因没办法搓出太多题。导致很多题都是一个简单版一个加强版。
这题就是一个简单的沙箱绕过,其禁了import os和import而且我再使用网上的一些绕过payload的时候会报错,感觉是环境的原因。我写这题用的是其自带的shell类来进行写,步骤和我以前学的ssti很相似

payload如上就不展开细说了。