nssctf web 入门(7)

news2024/10/5 8:07:46

这里通过nssctf的题单web安全入门来写,会按照题单详细解释每题。题单在NSSCTF中。

想入门ctfweb的可以看这个系列,之后会一直出这个题单的解析,题目一共有28题,打算写10篇。

[SWPUCTF 2021 新生赛]hardrce

[SWPUCTF 2021 新生赛]hardrce

<?php
header("Content-Type:text/html;charset=utf-8");   
error_reporting(0);  #屏蔽错误报错信息
highlight_file(__FILE__); #将当前文件的代码显示到页面上
if(isset($_GET['wllm']))  #通过get获取wllm判断是不是空
{
    $wllm = $_GET['wllm']; #将get获取的wllm赋值给wllm
    $blacklist = [' ','\t','\r','\n','\+','\[','\^','\]','\"','\-','\$','\*','\?','\<','\>','\=','\`',]; #这里定义了一个黑名单数组
    foreach ($blacklist as $blackitem)  #foreach在php中用于遍历数组,这里代表将blacklist中的每个元素挨个取出放到blackitem中
    {
        if (preg_match('/' . $blackitem . '/m', $wllm)) { #通过preg_match匹配wllm中有没有blacklist中的内容 .在这里用来拼接 /m代表匹配多行字符串,也就是匹配所有的内容
        die("LTLT说不能用这些奇奇怪怪的符号哦!");
    }}
if(preg_match('/[a-zA-Z]/is',$wllm)) #绕通过preg_match匹配所有的大小写字符串
{
    die("Ra's Al Ghul说不能用字母哦!");
}
echo "NoVic4说:不错哦小伙子,可你能拿到flag吗?";
eval($wllm); #eval执行php代码
}
else
{
    echo "蔡总说:注意审题!!!";
}
?> 蔡总说:注意审题!!!

这里过滤了所有的字母我们肯定要编码,同时又过滤了很多字符,我们发现没有过滤% url编码是将url中非ascill码和特殊字符转换为可接受的ascll码的过程,%带着16进制编码

 这里像system这种普通文本不用经过url转换我们可以用~取反来帮我们

 

 绕过了但是ls没有东西这里没有过滤()我们试试将()不编码

(~system)(~ls /)

写进去的时候不要有D6D7

 [SWPUCTF 2021 新生赛]finalrce

[SWPUCTF 2021 新生赛]finalrce

<?php
highlight_file(__FILE__);  #把当前文件的代码显示到页面上
if(isset($_GET['url']))    #通过get方法获取一个url并判断url的值是不是空
{
    $url=$_GET['url'];     #将通过get获取的url的值赋值给url变量
    if(preg_match('/bash|nc|wget|ping|ls|cat|more|less|phpinfo|base64|echo|php|python|mv|cp|la|\-|\*|\"|\>|\<|\%|\$/i',$url))  #通过preg_match判断url中中有没有像bash|nc|wget|ping|ls|cat|more|less|phpinfo|base64|echo|php|python|mv|cp|la|\-|\*|\"|\>|\<|\%|\$中的内容    /i代表匹配大小写
{
        echo "Sorry,you can't use this.";
    }
    else
    {
        echo "Can you see anything?";
        exec($url);  #exec是执行命令的函数,这里会执行url的值
    }
}

 这里我们通过\来绕过如l\s 我们知道\在正则表达式中有特殊含义可以用来匹配特殊字符,这里我们代表匹配以l开头\s代表匹配一个空白字符

由此我们通过正则匹配的方式绕过了过滤 之外我们考虑exec会执行命令但是因为没有回显,所有我们不知道有什么内容这里>也被过滤了无法通过>输出到文件中

在linux中tee是一个命令行工具,可以以标准输出复制到标准输出 一般是将终端输出输出到文件

如ls | tee 1.txt 这个命令会将ls执行的结果输出到终端同时会输出到1.txt中所有我们可以使用tee来显示结果

所以得到payload l\s / | tee 1.txt

这里查看根目录下的文件

 

 

 这里没有过滤tac 我们使用tac

tac /flllllaaaaaaggggggg 因为在过滤规则中有la使用我们要通过\转义符使la的a变成普通字符这样就不会触发la的特殊方式

 

 

 

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

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

相关文章

【快乐手撕LeetCode题解系列】——环形链表

【【快乐手撕LeetCode题解系列】——移除链表元素&#x1f60e;前言&#x1f64c;环形链表&#x1f64c;画图分析&#xff1a;&#x1f60d;思路分析&#xff1a;&#x1f60d;源代码分享&#xff1a;&#x1f60d;总结撒花&#x1f49e;&#x1f60e;博客昵称&#xff1a;博客…

python简单认识一下字面量并尝试编写输出字面量在控制台

首先 还是顾名思义 什么是字面量&#xff1f; 在代码中写下来的固定的值 我们称之为 字面量 python的字面量主要是以下几种 当然 前期不需要那么急 我们先熟悉 数字类型中的 整数 浮点数 和字符串类型 然后后续再慢慢扩展即可 整数呢 就相当于 我们数学中的 正整数 例如 1 10…

Compose (10/N) - 动画

一、高级别动画 1.1 简单值动画 animate***AsState 为单个值添加动画。只需要指定目标值&#xff0c;会从当前值向目标值渐变。 animateColorAsStateanimateDpAsStateanimateSizeAsStateanimateOffsetAsStateanimateRectAsState animateIntAsState animateIntOffsetAsState an…

【机会约束、鲁棒优化】机会约束和鲁棒优化研究优化【ccDCOPF】研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【数据挖掘与商务智能决策】第十章 支持向量机

1. 线性可分SVM import numpy as np import pandas as pd import matplotlib.pyplot as plt%matplotlib inline1.1 生成模拟数据 # 导入sklearn模拟二分类数据生成模块 from sklearn.datasets import make_blobs # 生成模拟二分类数据集 X, y make_blobs(n_samples150, n_f…

SIP协议之RTP负载类型(payload type)

一、RTP负载类型介绍​ 在SIP 音视频通话中&#xff0c;媒体数据是由RTP包携带的&#xff0c; RTP包中的PT字段标识了负载媒体数据的类型。如下图&#xff1a; 注&#xff1a; PT表示负载类型(Payload Type), 7 bits&#xff0c;即所传输的多媒体的类型 ​  不同的媒体编码…

Kafka消费者组和分区再均衡

应用程序使用KafkaConsumer向Kafka订阅主题&#xff0c;并从订阅的Topic上接收消息。 要想知道如何从Kafka读取消息&#xff0c;需要先了解消费者和消费者组的概念。 1、消费者和消费者组 原因&#xff1a;假设我们有一个应用程序需要从一个Kafka Topic中读取消息并验证&…

14Exceptional Control Flow Exceptions and Process(异常控制流,异常和进程)

异常控制流 异常控制流出现的地方&#xff1a; 异常控制流&#xff08;Exceptional Control Flow&#xff0c;ECF&#xff09;是程序执行过程中由于某些特殊事件或条件而导致的控制流的改变。异常控制流通常出现在以下几种情况&#xff1a; 硬件异常和中断&#xff1a;硬件异…

14天手撸交互式问答数字人直播教程-课程计划

一、课程计划 二、时间安排 第01天&#xff1a;交互式问答数字人发展现状 从一个真实案例开始&#xff0c;介绍当前主流的交互式数字人平台&#xff0c;需求和应用场景&#xff0c;引入交互式数字人的交互流程和关键技术。后续整个直播系列的内容安排。 第02天&#xff1a;音…

Nvidia Orin刷机保姆级教程

文章目录前言一、刷机准备二、刷机实战1.刷机文件下载2.Orin进入刷机模式2.1拔掉Orin上所有线缆2.2插上type-c线缆2.3长按Force Recovery按钮2.4通电2.5松开2号按钮进入刷机模式2.6确认是否进入刷机模式3.命令行刷机3.1安装jetpack总结前言 使用Orin有段时间了&#xff0c;现在…

代码随想录_二叉树_leetcode236

leetcode 236. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、…

Windows主机信息搜集

注意&#xff1a;一切内容仅用于信息技术分享&#xff0c;切勿用于其他用途&#xff0c;一切后果与作者无关。 前言&#xff1a; 通过命令执行使用cs拿到了内网的一台主机&#xff0c;接下来我们进行内网的信息搜集。 1、内网环境分析 内网渗透&#xff1a; 在拿到webshell的…

机器学习——最大最小归一化

问&#xff1a;写出最小最大归一化公式,并对以下数据集进行最小最大归一化。x{6.3,9.2,-0.8,0.2,3.6}答&#xff1a; x_{min}-0.8 x_{max}9.2 将每个数据点应用最小最大归一化公式&#xff1a; $x_1{6.3-(-0.8)}/{9.2-(-0.8)}0.71 $x_2{9.2-(-0.8)}/{9.2-(-0.8)}1.0 $x_3…

PasteSpider之部署实际案例一则

本帖主要是介绍使用PasteSpider部署一个项目的过程&#xff0c;不一定会把所有问题都概括在内&#xff0c;但是至少是一个项目部署的完整流程和说明&#xff01; 我们以PasteCode的网站作为一个项目为例子&#xff0c;绑定的域名为https://www.pastecode.cn/,项目包含了api端和…

ldap 组织结构如何转成多叉树?

工作中&#xff0c;ldap 服务器的对接&#xff0c;可以能会涉及到同步组织结构&#xff0c;认证&#xff0c;认证后处理等等&#xff0c;最近认证还不是我想写的刚需&#xff0c;继续来看看对于组织结构的想法 例如同步 AD 域的组织结构&#xff0c;或者是 ldap 协议的其他产品…

「计算机控制系统」2. 采样与数据保持

计算机控制系统中的信号 理想采样过程的数学描述 信号的恢复与重构 文章目录计算机控制系统中的信号基础知识A/D中的信号D/A中的信号理想采样过程的数学描述采样过程的描述理想采样信号的描述Shannon采样定理信号的恢复与重构Shannon重构法信号保持重构法计算机控制系统中的信号…

Java属性文件编码:处理非西欧语言字符的指南

Java属性文件是一种轻量级的配置文件格式&#xff0c;用于在Java应用程序中存储键值对数据。在Java中&#xff0c;Properties类提供了一种方便的方式来读取和写入属性文件。 在Java中&#xff0c;属性文件通常使用ISO-8859-1字符集编码。这意味着如果您希望在属性文件中使用非…

中科图新BIM+GIS数字化设计施工管理解决方案

一、引言&#xff1a; 公路项目对施工质量和风险控制要求高&#xff0c;但涉及专业、队伍、机械等众多因素&#xff0c;导致施工质量与安全控制困难。必须提前应对并做好过程中的管控&#xff0c;信息化系统可支持记录和管理数据。 二、中科图新BIMGIS智慧施工管理平台 中科图…

docker容器的相关环境及创建镜像1

一、容器管理工具介绍 LXC 2008 是第一套完整的容器管理解决方案 不需要任何补丁直接运行在linux内核之上管理容器。创建容器慢&#xff0c;不方便移植 Docker 是在LXC基础上发展起来的。拥有一套容器管理生态系统 生态系统包含︰容器镜像、注册表、RESTFUL API及命令行操作界…

Python算法设计 - McCarthy 91

目录一、什么是 McCarthy 91二、有什么用&#xff1f;三、Python算法实现四、作者Info一、什么是 McCarthy 91 McCarthy 91 是一个递归的函数表达式如下 函数的意思是当输入一个大于 100 的数字 n 时返回 n-10&#xff0c;而当输入一个小于等于101的数字 n 时递归的对 n 进行…