NSSCTF

news2024/12/26 11:11:20

[SWPUCTF 2021 新生赛]gift_F12 

在源代码界面找到了flag

[SWPUCTF 2021 新生赛]jicao

源码

<?php
highlight_file('index.php');
include("flag.php");
$id=$_POST['id'];
$json=json_decode($_GET['json'],true);
if ($id=="wllmNB"&&$json['x']=="wllm")
{echo $flag;}
?>

看的出来是有文件包含的,

id利用post传参id

json加密json get传参json

如果id= wllmNB json[x]=wllm 就可以得到flag

json_decode函数:

json_decode是php5.2.0之后新增的一个PHP内置函数,其作用是对JSON格式的字符串进行编码.那么这个函数该如何使用呢?

json_decode的语法规则:  ​json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

json_decode接受一个JSON格式的字符串并且把它转换为PHP变量 ,当该参数$assoc为TRUE时,将返回array,否则返回object。

JSON 格式的字符串

$json = '{"a":"php","b":"mysql","c":3}';

其中a为键,php为a的键值。

实例:

 所以这个get传参就可以写成?json = '{"X":"wllm"}';

post传参是 id=wllmNB

得到flag

[SWPUCTF 2021 新生赛]easy_md5 

源码

<?php 
 highlight_file(__FILE__);
 include 'flag2.php';
 
if (isset($_GET['name']) && isset($_POST['password'])){
    $name = $_GET['name'];
    $password = $_POST['password'];
    if ($name != $password && md5($name) == md5($password)){
        echo $flag;
    }
    else {
        echo "wrong!";
    }
 
}
else {
    echo 'wrong!';
}
?>

wrong!

简单的数组绕过

get传参name,post传参password,让他们两个值不同但是md5值相等,直接用数组绕过

get:name[]=2

post:password[]=1

得到flag

[SWPUCTF 2021 新生赛]easy_sql

在源码中找到了参数

url应该是注入点

找到了 看看sqlmap能不能用 发现可以

sqlmap命令:

常用命令:

1. sqlmap -u url:对指定的 URL 进行 SQL 注入测试。

2. sqlmap -r request_file:对指定的 HTTP 请求文件进行 SQL 注入测试。

3. sqlmap -d database_url:对指定的数据库 URL 进行 SQL 注入测试。

4. sqlmap --dbs:列出目标数据库中所有可用的数据库名称。

5. sqlmap -D database_name --tables:列出指定数据库中所有可用的数据表名称。

6. sqlmap -D database_name -T table_name --columns:列出指定数据表中所有可用的列名称。

7. sqlmap -D database_name -T table_name -C column_name --dump:获取指定列中的所有数据。

高级命令:

1. sqlmap --threads=num:指定使用的线程数。

2. sqlmap --level=num:指定测试的深度级别。

3. sqlmap --risk=num:指定测试的风险级别。

4. sqlmap --batch:以批处理模式运行 sqlmap。

5. sqlmap --random-agent:使用随机的 User-Agent 头部信息。

6. sqlmap --tor:通过 Tor 网络进行测试。

7. sqlmap --proxy=proxy_url:通过指定代理服务器进行测试。

8. sqlmap --dbms=dbms_name:指定要测试的数据库管理系统类型。

9. sqlmap --os=os_name:指定要测试的操作系统类型。

10. sqlmap --technique=technique_name:指定要使用的 SQL 注入技术。

找一下flag信息  最后在test_db表test_tb列中找到flag字段

[SWPUCTF 2021 新生赛]include 

传入:?file=flag.php 显示:

 php伪协议

PHP 伪协议(PHP pseudo-protocols)是一种特殊的 URL 格式,用于在 PHP 中访问和处理各种资源和数据。它们不是真正的协议,而是由 PHP 解释器解析和处理的特殊 URL 形式。

常见php伪协议

  1. php://input:用于访问请求的原始数据。可以用于处理 POST 请求的原始数据或者处理上传的文件数据。

  2. 示例:

    php

  • $data = file_get_contents('php://input');
    ```
    
    
  • php://output:用于输出数据到响应。可以用于将数据发送到浏览器或其他输出流。

    示例:

    php

  • file_put_contents('php://output', 'Hello, World!');
    ```
    
    
  • php://stdin:用于从标准输入流(stdin)读取数据。

    示例:

    php

  • $input = fgets(STDIN);
    ```
    
    
  • php://stdout:用于将数据写入标准输出流(stdout)。

    示例:

    php

  • fwrite(STDOUT, 'Hello, World!');
    ```
    
    
  • php://stderr:用于将错误信息写入标准错误流(stderr)。

    示例:

    php

  • fwrite(STDERR, 'An error occurred!');
    ```
    
    
  • php://temp:用于创建一个临时的内存数据流,可以读写数据。

    示例:

    php

$handle = fopen('php://temp', 'r+');
fwrite($handle, 'Hello, World!');
rewind($handle);
$data = fread($handle, 1024);
fclose($handle);

伪协议读取文件

1.读取本地文件 

$fileContent = file_get_contents('php://filter/read=convert.base64-encode/resource=/path/to/file.txt');
```

上述代码会将指定路径 `/path/to/file.txt` 的文件内容读取到变量 `$fileContent` 中。`convert.base64-encode` 过滤器可以将文件内容进行 Base64 编码,如果不需要编码,可以省略该过滤器。

2.读取远程文件 

$fileContent = file_get_contents('php://temp');
$remoteFile = fopen('http://example.com/file.txt', 'r');
stream_copy_to_stream($remoteFile, $fileContent);
fclose($remoteFile);
```

上述代码使用 `php://temp` 创建一个临时数据流,然后通过 `fopen` 打开远程文件 `http://example.com/file.txt`,最后使用 `stream_copy_to_stream` 将远程文件内容复制到临时数据流中。

3.读取标准输入

$stdinContent = file_get_contents('php://stdin');
```

上述代码会将标准输入中的内容读取到变量 `$stdinContent` 中。

这道题就可以用

php://filter/read=convert.base64-encode/resource=/path/to/file.txt的形式进行读取

base64进行解码就得到flag了

[SWPUCTF 2021 新生赛]easyrce

get传参url

用system进行rce

system('ls') 是一个 PHP 的系统调用函数,用于在命令行中执行系统命令。在这个例子中,ls 是一个常见的 Unix/Linux 命令,用于列出当前目录中的文件和文件夹。

当你在 PHP 中调用 system('ls') 时,它会执行 ls 命令,并将结果输出到标准输出流。你可以在命令行中运行 PHP 脚本或者在 Web 服务器上执行 PHP 脚本以查看输出结果。

system('ls /') 

找到了flag文件 得到flag

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

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

相关文章

Learn Prompt- Midjourney 图片生成:常用参数

在上一页当中&#xff0c;我们在解说基本设置的同时&#xff0c;举例了不少以--开头的参数。 参数是添加到提示中的选项&#xff0c;可更改图像的生成方式&#xff0c;图像的纵横比&#xff0c;在 Midjourney模型版本之间切换&#xff0c;更改使用的 Upscaler 等等。使用参数的…

基于FPGA的图像直方图统计实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、图像数据传输 4.2、直方图统计算法 4.3、时序控制和电路设计 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 vivado2019.2 matlab2022a 3.部分核心程序 timescal…

阻塞队列-生产者消费者模型

阻塞队列介绍标准库阻塞队列使用基于阻塞队列的简单生产者消费者模型。实现一个简单型阻塞队列 &#xff08;基于数组实现&#xff09; 阻塞队列介绍 不要和之前学多线程的就绪队列搞混&#xff1b; 阻塞队列&#xff1a;也是一个队列&#xff0c;先进先出。带有特殊的功能 &…

LeetCode_二叉树_中等_1372.二叉树中的最长交错路径

目录 1.题目2.思路3.代码实现&#xff08;Java&#xff09; 1.题目 给你一棵以 root 为根的二叉树&#xff0c;二叉树中的交错路径定义如下&#xff1a; 选择二叉树中 任意 节点和一个方向&#xff08;左或者右&#xff09;。如果前进方向为右&#xff0c;那么移动到当前节点…

基于Python + SnowNLP实现一个文本情感分析系统

当你浏览社交媒体、新闻或任何数字内容时&#xff0c;你有没有想过背后的技术是如何分析和理解这些文本的情感的&#xff1f;有没有想过在数百万条评论、帖子或文章中&#xff0c;如何快速地识别出其中的积极和消极情绪&#xff1f;在这篇文章中&#xff0c;我们将揭示其中的奥…

数据结构—堆(C语言实现)

目录 堆是什么&#xff1f; 一、大堆 一、小堆 如何实现堆&#xff1f; 代码实现 &#xff1f; 一、定义堆的结构体 二、初始化堆 三、构建堆 1.利用向下调整算法 2.开始构建 四、插入元素 1.利用向上调整算法 五、取出堆顶元素、销毁堆 六、堆排序 Extra&#…

SpringBoot中xml映射文件

1.规范 说明&#xff1a;XML映射文件的名称与Mapper接口名称一致&#xff0c;并且将XML映射文件和Mapper接口放置在相同包下&#xff08;同包同名&#xff09;。 xML映射文件的namespace属性为Mapper接口全类名一致。 XML映射文件中sql语句的id与Mapper接口中的方法名一致&…

Spring面试题4:面试官:说一说Spring由哪些模块组成?说一说JDBC和DAO之间的联系和区别?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说Spring由哪些模块组成? Spring是一个开源的Java框架,由多个模块组成,每个模块都提供不同的功能和特性。下面是Spring框架的主要模块: S…

基于nodejs+vue办公OA公文发文件管理系统

论文的研究内容包括&#xff1a;公文分类、公文信息、待办提醒等方面进行了研究。系统以当前应用最为广泛的nodejs语言为基础&#xff0c;结合了目前应用最为广泛的嵌入式嵌入式平台&#xff0c;集成了B/S体系结构。数据库选择简便高效的MySQL&#xff0c;vue框架。在OA公文发文…

大语言模型之十 SentencePiece

Tokenizer 诸如GPT-3/4以及LlaMA/LlaMA2大语言模型都采用了token的作为模型的输入输出&#xff0c;其输入是文本&#xff0c;然后将文本转为token&#xff08;正整数&#xff09;&#xff0c;然后从一串token&#xff08;对应于文本&#xff09;预测下一个token。 进入OpenAI官…

【LeetCode75】第六十三题 不同路径

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们返回地图的长和宽。问我们从地图的左上走到右下有几种方法。我们只能往下走或是往右走。 这个算是简单的二维动态规划题了。 …

Docker安装 MySQL8.0.33

Docker 核心&#xff1a;容器 Container 和镜像 Images Docker 安装镜像 mysql:8.0.33 图形化安装界面可选择版本较少 推荐使用命令行安装(可以自定义安装的版本) 版本安装命令链接&#xff1a;mysql Tags | Docker Hub 终端执行命令 docker pull mysql:8.0.33创建容器 安装完…

多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测(SE注意力机制)

多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测&#xff08;SE注意力机制&#xff09; 目录 多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测&#xff08;SE注意力机制&#xff09;预测效果基本描述模型描述程序设计参考资料 预测效果 基本…

【Hello Linux】高级IO Select

本篇博客介绍&#xff1a;介绍Linux中的高级IO 高级IO IO五种IO模型非阻塞IO如何判断异常读取 IO多路转接之Selectselect的优缺点 网络通信的本质其实就是一种IO 而我们知道的是 IO的效率实际上是十分低下的 所以说我们需要一些机制或者方法来解决这个效率问题 IO IO实际上…

R and RStudio的安装教程【2023】

首先需要安装R&#xff0c;才能安装RStudio。 安装包文末获取或者去官网获取&#xff0c;一样的&#xff1a; R的安装&#xff1a;&#xff08;很简单&#xff0c;如果你想安装到C盘&#xff0c;全部选项无脑选下一步&#xff0c;不想安装到C盘&#xff0c;就改一下就ok.&…

软件测试同行评审到底是什么?

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程&#xff0c;刷完面试就稳了&#xff0c;你也可以当高薪软件测试工程师&#xff08;自动化测试&#xff09; “同行评审是一种通过作者的同行(开发、测试、QA等)来确认缺陷和需要变更区域的检查方法。”在软件测试中…

五、C#—字符串

&#x1f33b;&#x1f33b; 目录 一、字符串1.1 字符类型1.2 转义字符1.3 字符串的声明及赋值1.3.1 c# 中的字符串1.3.2 声明字符串1.3.3 使用字符串1.3.4 字符串的初始化1.3.4.1 引用字符串常量之初始化1.3.4.2 利用字符数组初始化1.3.4.3 提取数组中的一部分进行初始化 1.3.…

企业微信自建小程序应用踩坑实践

最近开发了一个小程序接入企业微信的需求&#xff0c;企业微信的权限限制诸多&#xff0c;网上的完整示例又少之又少&#xff0c;因此踩了比较多坑&#xff0c;与大家分享。 开发调试 在开发者工具中如果直接使用微信小程序模式&#xff0c;调用wx.qy接口会提示不存在&#x…

Qt5开发及实例V2.0-第二十一章-Qt.Quick Controls开发基础

Qt5开发及实例V2.0-第二十一章-Qt.Quick Controls开发基础 第21章 Qt Quick Controls开发基础21.1 Qt Quick Controls概述21.1.1 第一个Qt Quick Controls程序21.1.2 Qt Quick窗体应用程序的构成 21.2 Qt Quick控件21.2.1 概述21.2.2 基本控件21.2.3 高级控件21.2.4 样式定制 2…

光电开关-NPN-PNP

基础概念 有信号 “检测到物体/有物体遮挡” 工作原理 NPN&#xff1a;表示共正电压&#xff0c;输出负电压【只能输出低电压或者悬空 常开常闭是指 输出有没有跟“地”接通】&#xff1b; NPN NO&#xff1a;表示常态下是常开的&#xff0c;检测到物体时黑色线输出一个负电压…