nssctf web 入门(5)

news2024/9/27 12:12:12

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

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

目录

[鹤城杯 2021]EasyP

[SWPUCTF 2021 新生赛]easyupload1.0

 [SWPUCTF 2021 新生赛]easyupload2.0

 [SWPUCTF 2021 新生赛]easyupload3.0


[鹤城杯 2021]EasyP

[鹤城杯 2021]EasyP

 

<?php
include 'utils.php';  #包含utils.php

if (isset($_POST['guess'])) {  #判断通过post方法获取的guess是不是空
    $guess = (string) $_POST['guess']; #把post获取guess赋值给guess强制以字符串形式
    if ($guess === $secret) {    #判断guess的值是不是secret
        $message = 'Congratulations! The flag is: ' . $flag; #把Congratulations! The flag is: 赋值给message也就是得到flag
    } else {
        $message = 'Wrong. Try Again'; #把Wrong. Try Again把message
    }
}

if (preg_match('/utils\.php\/*$/i', $_SERVER['PHP_SELF'])) { #preg_match匹配是不是以utils.php结尾$_SERVER['PHP_SELF']用于获取当前执行的php脚本的文件名和路径
    exit("hacker :)");
}

if (preg_match('/show_source/', $_SERVER['REQUEST_URI'])){ #通过preg_match匹配url中有没有show_source$_SERVER['REQUEST_URI']代表url中的路径和url值
    exit("hacker :)");
}

if (isset($_GET['show_source'])) {  #判断get获取的show_source是不是空
    highlight_file(basename($_SERVER['PHP_SELF'])); #highlight_life将当前脚本输出到页面,basename用于获取文件的基础名称 即在/etc/index.php中basename会获取index $_SERVER['PHP_SELF']用于获取文件所在的目录和文件名即 获取/etc/index.php整个这里的路径文件为举例
    exit();
}else{
    show_source(__FILE__);  #将当前脚本输出到页面
}
?> 

这里前面通过判断guess和secret的值输出flag,因为没有secret的任何信息,我们判断使假信息,但是可以调用$flag,我们猜测flag在包含文件utils.php中,下面我们的想法就是输出utils.pho的代码内容,我们发现highlight_file(basename($_SERVER['PHP_SELF']));是输出当前目录的文件,也就是当$_SERVER['PHP_SELF的内容使utils.php的时候就会输出utils.php的代码,因为basename的存在所以utils.php会被读取成utils,符合highlight_file的语法,所以第一我们要在页面目录中指定成utils.php

 但是因为过滤了当前文件不能以utils.php结尾,这里我们绕过方法hi是通过url错误编码绕过

 如%99 %95 这种不存在的url编码,url编码是通过%和两个16进制数来表示的

还可以通过中文来绕过

这里我们就成功绕过了第一个,第二个问题是我们要传入show_source让他不为空,让 highlight_file(basename($_SERVER['PHP_SELF']));执行,这里绕过了show_source

这里我们要明白_代表连接符我们可以通过[和+这两个连接符绕过

 

 得到flag

[SWPUCTF 2021 新生赛]easyupload1.0

[SWPUCTF 2021 新生赛]easyupload1.0

 

这里先随便上传发现对传入的大小有过滤,我们创建一个1.txt里面写上<>上传文件bp抓包,我这边就不开bp了 

 发现我们的包修改内容 <?php phpinfo(); ?>在修改1.jpg的后缀为1.php

这里我们想看看phpinfo 查看php开放的权限,在正常中能先访问phpinfo就先访问phpinfo会暴露配置信息,从中可以发现有没有存在漏洞如allow_url_include为on这种

 

 在phpinfo中可以收集信息也可以试试直接搜索flag这里我们直接搜索出来了flag

 [SWPUCTF 2021 新生赛]easyupload2.0

[SWPUCTF 2021 新生赛]easyupload2.0

 与上一题一样

 

 phtml文件.phtml 文件通常被用作模板文件,即包含 HTML 和 PHP 代码

所以我们可以修改后缀为phtml将0.phtml作为模板文件执行

 

 [SWPUCTF 2021 新生赛]easyupload3.0

[SWPUCTF 2021 新生赛]easyupload3.0

 那根据这个提示知道这里要传php一句话木马

这里我们通过尝试发现都不行

 

 我们在头发现是apache 我们知道apache可有个.htaccess

.htaccess是一种配置文件,用于在apache服务器中进行设置

在.htaccress中存在系统指令,其中filesmatch用于在服务器上匹配请求的文件名或者文件类型

SetHandler application/x-httpd-php 是一个apache命令,他用于将内容作为php代码执行而不是纯文本

所以我们可以先传入一个一句话木马,以jpg格式成功上传,然后通过apache的.htaccess文件中的filesmatch找到木马图片,通过SetHandler application/x-httpd-php执行使.jpg文件以php文件执行

 

 

 

 

 

 

 

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

 

 

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

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

相关文章

VR全景--720全景 助力行业数字化新模式

引言 720全景就是视角超过人的正常视角的图像&#xff0c;而我们这里说的全景特指水平360度&#xff0c;上下360度全能观看的&#xff0c;能看到“天、地”的全景。全景实际上只是一种对周围景象以某种几何关系进行映射生成的平面图片&#xff0c;只有通过全景播放器的矫正处理…

电力监控系统高扩展性的设计思路与方法

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 电力监控软件的可扩展性设计 2023-04-19 14:00AcreXHJ 安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘要&#xff1a;本文根据安科瑞电力监控系统软件的设计过程&#xff0c;论述了电力监控系统高扩展…

JS 正则表达式(正则匹配RegExp)

JavaScript实现对象深拷贝的方法&#xff08;5种&#xff09; 知识回调&#xff08;不懂就看这儿&#xff01;&#xff09;场景复现核心干货举例引入关于RegExp对象语法修饰符——区分大小写和全局匹配方括号——查找某个范围内的字符元字符——拥有特殊含义的字符量词RegExp对…

4.Hadoop三件套(1)

如果说HDFS是存储,则Yarn就是cpu和内存,mapreduce就是程序。 1.HDFS文件块大小 HDFS中的文件在物理.上是分块存储(Block) ,block默认保存3份块的大小可以通过配置参数(dfs blocksize)来规定,默认大小在Hadoop2 .x版本中是128M,老版本中是64M。 解释:块的大小:10ms*100*…

代码随想录算法训练营第48天 | 动态规划 LeetCode198.打家劫舍,213.打家劫舍II,337.打家劫舍 III

代码随想录算法训练营第48天 | 动态规划 LeetCode198.打家劫舍&#xff0c;213.打家劫舍II&#xff0c;337.打家劫舍 III 198.打家劫舍 第一遍读题思考 dp[i]代表打劫到第i家的时候抢到的最多的钱数。 那么递推公式就跟dp[i-1] and dp[i-2]有关&#xff0c;如果抢i-1家的&am…

【梦回stm32】-寄存器篇-跑马灯代码研读-总结

前言&#xff1a;学就要学懂&#xff0c;别以为做出来就行&#xff0c;要弄懂通路&#xff0c;思路要清楚-谨记 1.先讲讲背景&#xff0c;此次需要研究的是stm32的跑马灯代码&#xff0c;下图是个本实验用的正点原子的代码目录 1&#xff09;HARDWARE-》LED 2&#xff09;SYS…

【COMP282 LEC 1-2】

LEC 1 Introduction to c Header file : 1. 不用写 " .h " Function : 数据类型有string了&#xff0c;就像java&#xff0c;需要#include<string> Output system : Explain by example: std::cout << hello << " is of length "…

电脑IP地址查询,3个实用方法!

案例&#xff1a;电脑IP地址怎么查询 【请问有没有朋友知道电脑IP地址怎么查询呀&#xff1f;想看看我的IP地址却不知道该怎么查询&#xff0c;哪位友友可以帮帮我&#xff01;】 在互联网世界中&#xff0c;IP地址是一种用于标识设备&#xff08;如电脑、手机等&#xff09;…

在OLED上显示各种各样的数据(文字、字母、图片)

今天来说一说OLED&#xff0c;也同时记录一下成果。 在学习OLED之前需要知道IIC协议&#xff0c;不了解的可以看&#xff08;IIC协议相关_dxdlnu的博客-CSDN博客&#xff09; 什么是OLED? OLED_百度百科 (baidu.com) 一.OLED写入指令和数据 因为OLED是有写入指令/数据的操作…

camunda工作流引擎多租户架构

Camunda支持多租户的方式有两种&#xff1a;共享引擎和多引擎。 1、共享引擎 在共享引擎的模式下&#xff0c;多个租户共享同一个Camunda引擎。每个租户的数据被存储在引擎中的不同表中&#xff0c;而引擎的配置和部署是共享的。可以通过以下方式实现共享引擎&#xff1a; &…

OpenAI-ChatGPT最新官方接口《微调ChatGPT模型》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(四)(附源码)

微调ChatGPT模型 前言Introduction 导言What models can be fine-tuned? 哪些模型可以微调&#xff1f;Installation 安装Prepare training data 准备训练数据CLI data preparation tool CLI数据准备工具Create a fine-tuned model 创建微调模型Use a fine-tuned model 使用微…

​HTTP和TCP协议的队头阻塞​

队头阻塞&#xff08;Head-of-line blocking&#xff09;其实有两种&#xff0c;一种是 TCP 队头阻塞&#xff0c;另一种是 HTTP 队头阻塞&#xff0c;而这两者之前其实还存在一定的联系&#xff0c;毕竟 HTTP1/2 是建立在 TCP 协议之上的应用层协议&#xff0c;另外还有HTTP3对…

【LeetCode 图论 一】初探有向图Directed Graph

今天主要介绍DAG &#xff08;Directed acyclic graph&#xff09;&#xff0c;有向无环图。 无向图的问题相对有向图比较简单&#xff0c;比如岛屿问题&#xff0c;迷宫问题等。 在有向图中&#xff0c;我们通常只关注环是否存在&#xff0c;因为有向图中环的存在会让我们的…

HBuilderX的快捷键 和 常见配置

快捷键说明ctrl /添加注释&#xff08;js&#xff1a;// 注释、css&#xff1a;/* 注释 */、vue/nvue模板&#xff1a; <!-- 注释 -->&#xff09;Ctrl C 拷贝当前行或者所选代码块到剪切板Ctrl X剪切当前行或所选代码块到剪切板Ctrl V粘贴剪切板上的内容Ctrl D 删除…

浏览器实时查看日志系统-log.io

标题 前言操作步骤1. Install server via npm安装Nodejs2. Launch server3. Install file input via npm4. Configure file input前言 log.io 是一个实时日志监控工具,采用 node.js + socket.io 开发,使用浏览器访问,每秒可以处理超过5000条日志变动消息。有一点要指出来的…

叔可忍婶不可忍!马斯克3月呼吁暂停人工智能,4月却创立TruthGPT

2018年马斯克退出了OpenAI团队。 2022年11月&#xff0c;ChatGPT在北美大陆问世。 2023年3月21日&#xff0c;马斯克在未来生命&#xff0c;签署并呼吁&#xff0c;暂停高级人工智能的研发。 2023年4月18日马斯克创立了TruthGPT。 同时&#xff0c;亚马逊&#xff0c;也创立了B…

提桶跑路转行到软件测试,鬼知道我经历了什么?很庆幸转行成功...

说来惭愧&#xff0c;我的大学不是985也不是211&#xff0c;不过地质学科群一直排名国内前几&#xff0c;2017年也藉由地质学学科评上了“双一流”。咱们土木工程跟着沾沾光&#xff0c;也能和别人吹吹牛逼&#xff0c;所以毕业后的工作基本上在省内是不愁的。 但是我还是低估了…

“全自主、全流程、全覆盖”2023实景三维新技术研讨会广州站圆满举行!

4月12日&#xff0c;由中国测绘学会、中国地理信息产业协会指导&#xff0c;广州省测绘学会主办&#xff0c;武汉大势智慧科技有限公司承办的全自主、全流程、全覆盖”2023实景三维新技术研讨会广州站在广州珠江宾馆隆重举行。 本次会议广东省测绘学会、地图院、测绘院、市城市…

ChatGPT促进中国大语言模型发展,底层标注数据质量成关键,景联文科技提供专业数据采集标注服务

自开年以来&#xff0c;ChatGPT的热浪带来了一场全民的科技狂欢&#xff0c;同时打开了业内对NLP发展的想象空间&#xff0c;拉开了大语言模型产业和生成式AI产业飞速发展的序幕。 海外市场中OpenAI、微软、谷歌、Meta等巨头都在积极争抢布局ChatGPT&#xff0c;中国市场中百度…

NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022

然后我们来看一下如何操作模板 首先我们准备好了一个模板,叫做CsvToJSON这样一个模板文件了 然后我们再来看左下角有个上传模板 可以选择这个模板上传上来,然后,就可以在右侧找到,菜单,找到template,点击,来查看模板了 然后添加组,就是顶部的那个两个圆圈的组件拖过来以后用来…