做题(1)

news2024/11/27 9:40:06

1.fileinclude

打开 发现提示flag在flag.php里边

查看页面源代码

$lan = $_COOKIE['language'];

这句话是关键 变量lan是用cookie传参的

@include("english.php");

这句话表明了文件包含 include函数用php伪协议 filer绕过

@include($lan.".php");

这句话表明了变量lan是和后边的php拼接的 所以传参的时候就不用在加.php了

分析完代码 用bp抓包换cooike的值

Cookie: language=php://filter/read=convert.base64-encode/resource=/var/www/html/flag 

base64解密得到答案 cyberpeace{5d4463d367bc49c7767a96cfec72c6ee}

2.fileclude

 

分析源码:

get传参 file1,file2

file1,file2不能为空

涉及到一个函数:

file_get_contents()函数,它是PHP中最常用的文件处理函数之一。

file_get_contents()函数用于读取文件中的内容,并将其作为字符串返回。它通常用于读取文本文件或从远程URL获取内容。

要让file2强等于hello ctf

文件包含file1

这里也是用php伪协议

file_get_contents可以用php://input绕过

文件包含用php://filter绕过 

payload:

file1=php://filter/convert.base64-encode/resource=flag.php&file2=php:input

php://input还需要传参post hello ctf

得到base64编码 解码 得到flag

cyberpeace{301551117bf02b4c38abeebf68998878}

 3.file_include

打开发现是文件包含

get传参filename 用filter来绕过

发现用正常的filter绕过不成功 去百度了一下filter绕过方式 发现了很多不一样的绕过姿势

用手测?filename=php://filter//convert.iconv.SJIS*.UCS-4*/resource=flag.php 可以绕过 换了一个过滤器

 

4.catcat-new 

进入环境,先用dirsearch扫描一下

这题扫描也没扫出来

看了别人的wp 发现了新的知识点

点击副页发现了这个url

观察URL,可以发现URL上使用get请求传递了一个名为file的参数,所以猜测可能存在文件包含漏洞。

在URL上传递参数file=../../../etc/passwd发现存在漏洞

读取当前进程的命令行参数?file=../../../../proc/self/cmdline,发现有一个通过python启动app.py的命令。 所以可以得出该网站使用Python框架,并且因为有app.py可知使用的是flask框架。 

解体思路:Linux系统敏感文件,flask_session_cookie_manager伪造session并执行,session存储在cookie中

以我现在的能力做不出来 先去了解了知识点的这些东西

XCTF-Web-catcat-new_weixin_45723896的博客-CSDN博客 

大佬博客 一周之内会复现成功

5.Web_php_include 

 

重点在include($page),使用了include这个文件包含函数,被include包含的$page通过get方式传入且可控。所以存在文件包含漏洞。但在判断中通过strstr过滤了"php://"

当传入的page存在php://时候替换为空

可以利用php伪协议。而strstr是区分大小写的,所以可以通过大小写绕过过滤

首先通过大小写及报错,确定是linux系统

这时候就可以利用php伪协议+linux命令执行语句来做

也可以用data协议来做

data://伪协议可以执行php代码,格式如下:

data://text/plain,要执行的代码

如果特殊字符被过滤,还可以使用base64编码

data://text/plain;base64,编码后的代码 

?page=data://text/plain;base64,PD9waHAgc3lzdGVtKCdscycpPz4= 

发现了flag文件 再次编码之后放包  ?page=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmw0Z2lzaXNpc2gzcjMucGhwJyk/Pg==

<?php system('cat fl4gisisish3r3.php')?> 

得到flag

 

 

知识点

 1.2.3题

文件包含漏洞

也是一种“注入型漏洞”,其本质就是输入一段用户能够控制的脚本或者代码,并让服务器端执行。

    require(),找不到被包含的文件时会产生致命错误,并停止脚本运行。
    include(),找不到被包含的文件时只会产生警告,脚本将继续运行。
    include_once()与include()类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。
    require_once()与require()类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。

 

过滤器
字符串过滤器

string.rot13

string.rot13(自 PHP 4.3.0 起)使用此过滤器等同于用 str_rot13()函数处理所有的流数据。

str_rot13—对字符串执行ROT13转换. ROT13编码简单地使用字母表中后面第13个字母替换当前字母,同时忽略非字母表中的字符。编码和解码都使用相同的函数,传递一个编码过的字符串作为参数,将得到原始字符串。

string.toupper

string.tolower(自 PHP 5.0.0 起)使用此过滤器等同于用 strtolower()函数处理所有的流数据。

strtoupper—将字符串转化为大写

string.tolower

(自 PHP 5.0.0 起)使用此过滤器等同于用 strtolower()函数处理所有的流数据。

strtolower—将字符串转化为小写

string.strip_tags

使用此过滤器等同于用 strip_tags()函数处理所有的流数据。可以用两种格式接收参数:一种是和strip_tags()函数第二个参数相似的一个包含有标记列表的字符串,一种是一个包含有标记名的数组。

strip_tags—从字符串中去除 HTML 和 PHP 标记.该函数尝试返回给定的字符串str去除空字符、HTML 和 PHP 标记后的结果。它使用与函数fgetss()一样的机制去除标记。

转换过滤器

如同 string.* 过滤器,convert.* 过滤器的作用就和其名字一样。转换过滤器是 PHP 5.0.0 添加的。对于指定过滤器的更多信息,请参考该函数的手册页。

convert.base64

convert.base64-encode和 convert.base64-decode使用这两个过滤器等同于分别用base64_encode()和base64_decode()函数处理所有的流数据。convert.base64-encode支持以一个关联数组给出的参数。如果给出了line-length,base64 输出将被用line-length个字符为 长度而截成块。如果给出了line-break-chars,每块将被用给出的字符隔开。这些参数的效果和用base64_encode()再加上 chunk_split()相同。

convert.quoted

convert.quoted-printable-encode和convert.quoted-printable-decode使用此过滤器的decode版本等同于用 quoted_printable_decode()函数处理所有的流数据。没有和convert.quoted-printable-encode相对应的函数。convert.quoted-printable-encode支持以一个关联数组给出的参数。除了支持和convert.base64-encode一样的附加参数外,convert.quoted-printable-encode还支持布尔参数binary和 force-encode-first。convert.base64-decode只支持line-break-chars参数作为从编码载荷中剥离的类型提示。

convert.iconv.*

这个过滤器需要php支持 iconv ,而iconv是默认编译的。使用convert.iconv.*过滤器等同于用iconv()函数处理所有的流数据。

iconv — 字符串按要求的字符编码来转换

convery.iconv.*的使用有两种方法:

1.convert.iconv.<input-encoding>.<output-encoding>

2.convert.iconv.<input-encoding>/<output-encoding>

支持的字符编码有以下几种 

UCS-4*

UCS-4BE

UCS-4LE*

UCS-2

UCS-2BE

UCS-2LE

UTF-32*

UTF-32BE*

UTF-32LE*

UTF-16*

UTF-16BE*

UTF-16LE*

UTF-7

UTF7-IMAP

UTF-8*

ASCII*

还有压缩过滤器,加密过滤器,这里不做过多阐述

可见大佬博客 详解php://filter以及死亡绕过_w0s1np的博客-CSDN博客

4题

/etc/passwd

该文件储存了该Linux系统中所有用户的一些基本信息,只有root权限才可以修改。其具体格式为 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell(以冒号作为分隔符)

/proc/self

proc是一个伪文件系统,它提供了内核数据结构的接口。内核数据是在程序运行时存储在内部半导体存储器中数据。通过/proc/PID可以访问对应PID的进程内核数据,而/proc/self访问的是当前进程的内核数据。

/proc/self/cmdline

该文件包含的内容为当前进程执行的命令行参数。

/proc/self/mem

/proc/self/mem是当前进程的内存内容,通过修改该文件相当于直接修改当前进程的内存数据。但是注意该文件不能直接读取,因为文件中存在着一些无法读取的未被映射区域。所以要结合/proc/self/maps中的偏移地址进行读取。通过参数start和end及偏移地址值读取内容。

/proc/self/maps

/proc/self/maps包含的内容是当前进程的内存映射关系,可通过读取该文件来得到内存数据映射的地址。

flask-session结构

flask_session是flask框架实现session功能的一个插件。其session结构分为三部分:序列化内容+时间+防篡改值,这三部分内容加密后以符号 “.”来进行分隔。flask_session默认session的储存是在用户Cookie中。但也可以指定存储在数据库,缓存中间件,服务器本地文件等等之中。

/proc/self/environ

/proc/self/environ文件包含了当前进程的环境变量

/proc/self/fd

这是一个目录,该目录下的文件包含着当前进程打开的文件的内容和路径。这个fd比较重要,因为在Linux系统中,如果一个程序用 open() 打开了一个文件,但是最终没有关闭它,即使从外部(如:os.remove(SECRET_FILE))删除这个文件之后,在/proc这个进程的fd目录下的pid文件描述符目录下还是会有这个文件的文件描述符,通过这个文件描述符我们即可以得到被删除的文件的内容。通过/proc/self/fd/§pid§来查看你当前进程所打开的文件内容。

当pid不知道时,我们可以通过bp爆破,pid是数字。

/proc/self/exe

获取当前进程的可执行文件的路径

 

 

 

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

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

相关文章

AI项目六:WEB端部署YOLOv5

若该文为原创文章&#xff0c;转载请注明原文出处。 一、介绍 最近接触网页大屏&#xff0c;所以就想把YOLOV5部署到WEB端&#xff0c;通过了解&#xff0c;知道了两个方法&#xff1a; 1、基于Flask部署YOLOv5目标检测模型。 2、基于Streamlit部署YOLOv5目标检测。 代码在…

Trinitycore学习之在vscode查看远端服务器上源码配置

1&#xff1a;安装vscode&#xff0c;去官网下载&#xff0c;这里下载windows版本安装包 .zip https://code.visualstudio.com/Download 2&#xff1a;安装后&#xff0c;安装扩展chinese&#xff0c;使用中文设置&#xff0c;需要重启vscode。 3&#xff1a;安装ssh相关插件…

C++设计模式_05_Observer 观察者模式

接上篇&#xff0c;本篇将会介绍C设计模式中的Observer 观察者模式&#xff0c;和前2篇模板方法Template Method及Strategy 策略模式一样&#xff0c;仍属于“组件协作”模式。Observer 在某些领域也叫做 Event 。 文章目录 1. 动机&#xff08; Motivation&#xff09;2. 代码…

Thonny安装教程

软件简介 Thonny —— 一个面向初学者的 Python IDE Thonny 由爱沙尼亚的 Tartu 大学开发&#xff0c;它采用了不同的方法&#xff0c;因为它的调试器是专为学习和教学编程而设计的。 下载&安装Thonny 下载地址 打开安装包&#xff0c;进入安装界面&#xff0c;一路Ne…

【每日一题】445. 两数相加 II

给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数字都不会以零开头。 示例1&#xff1a; 输入&#xff1a;l1 [7,2,4,3], l2 [5,6,4] 输…

电池电动汽车的健康状态 SOH 和充电状态 SOC 估计

完整程序请查看博主主页置顶博客&#xff08;专享优惠&#xff09; 主要内容&#xff1a; 健康状态 SOH采用平均加权最小二乘法&#xff08;AWTLS&#xff09;进行估计&#xff0c;并对比了加权最小二乘 &#xff08;WLS&#xff09;、总最小二乘法&#xff08;TLS&#xff0…

SQL7 查找年龄大于24岁的用户信息

描述 题目&#xff1a;现在运营想要针对24岁以上的用户开展分析&#xff0c;请你取出满足条件的设备ID、性别、年龄、学校。 用户信息表&#xff1a;user_profile iddevice_idgenderageuniversityprovince12138male21北京大学Beijing23214male复旦大学Shanghai36543female20…

GE IS215UCVGM06A IS215UCVGH1A VMIVME-7666-111000燃机模块

数据采集和监测&#xff1a;燃机模块通常具有广泛的数据采集功能&#xff0c;用于监测燃机的性能参数&#xff0c;如温度、压力、振动等。这些数据有助于运营人员实时监测燃机状态。 控制功能&#xff1a;这些模块通常包括控制逻辑和算法&#xff0c;用于管理燃机的启停、负荷…

山东大学图书馆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

山东大学图书馆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

2023年中国光伏行业研究报告

第一章 行业概况 1.1 定义 光伏行业&#xff0c;也称为太阳能光伏行业&#xff0c;是一个专注于利用光伏技术将太阳能转化为电能的领域。该行业涵盖了太阳能电池的制造、光伏系统的设计、安装和维护&#xff0c;以及电能的销售和供应。光伏技术的核心是光伏效应&#xff0c;通…

这家酒店,管理方式太out了!换个风格后绝了!

在酒店业&#xff0c;我们追求的不仅仅是舒适和奢华&#xff0c;还包括客人的安全与健康。然而&#xff0c;火灾风险是无论在何处都不可忽视的潜在威胁。每年&#xff0c;全球范围内数以千计的火灾事件发生&#xff0c;不仅造成了巨大的财产损失&#xff0c;还可能威胁到人们的…

mysql查所有下级

//向下递归包含本级 WITH RECURSIVE cte AS (SELECT * FROM live_usr_config WHERE supid"lNy5ZNI3WZ3QXSopb0mdr"UNION ALLSELECT d.* FROM live_usr_config d INNER JOIN cte ON d.supid cte.subid ) SELECT * FROM cte;//向下递归包含本级并限制次数为下两层 W…

Mathpix替代者|科研人必备公式识别插件|latexocr安装教程

首先是安装好python、然后直接用命令调用 文章目录 1、安装步骤2、使用步骤 1、安装步骤 也可以安装精简版的python 准备 Python 环境&#xff0c;安装python的步骤可以查看我的上一篇博文&#xff1a; Anaconda最新版2023安装教程Spyder安装教程 确保你的计算机已经安装了 P…

大数据课程L7——网站流量项目的操作步骤

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解网站流量项目的Spark与HBase整合; ⚪ 掌握网站流量项目的实时流业务处理; 一、 Spark 与 HBase 整合基础 1. 实现步骤: 1. 启动 IDEA。 2. 创建 Maven 工程,骨架选择 quickstar…

2023/09/12 qtc++

实现一个图形类(Shape) &#xff0c;包含受保护成员属性:周长、面积&#xff0c; 公共成员函数:特殊成员函数书写 定义一个圆形类(Circle) &#xff0c;继承自图形类&#xff0c;包含私有属性:半径 公共成员函数:特殊成员函数…

使用Langchain+GPT+向量数据库chromadb 来创建文档对话机器人

使用LangchainGPT向量数据库chromadb 来创建文档对话机器人 一.效果图如下&#xff1a; 二.安装包 pip install langchainpip install chromadbpip install unstructuredpip install jieba三.代码如下 #!/usr/bin/python # -*- coding: UTF-8 -*-import os # 导入os模块&…

59-代码随想录--数组--螺旋矩阵

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 给定一个正整数 n&#xff0c;生成一个包含 1 到 n^2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 模拟顺时针…

电路电子技术1--关联参考方向及功率的计算

1.判断 电流由元件的低点位端流向高电位端的参考方向称为关联参考方向。() 考点&#xff1a;电流、电压的参考方向 解释&#xff1a;在一些复杂的电路中&#xff0c;往往不能预先确定某段电路上的电流、电压的实际方向&#xff0c;所以引进了 “关联参考方向”。为了能够解决问…

网工内推 | 运营商技术支持,数通基础扎实,最高17k

01 新华三技术有限公司 招聘岗位&#xff1a;运营商技术支持工程师 职责描述&#xff1a; 1、负责新华三产品产品和方案在运营商客户的日常运维和技术支持&#xff1b; 2、为运营商客户提供网上问题处理、业务变更支持&#xff1b; 3、负责对应运营商客户日常维系&#xff0…

RabbitMQ基础概念-02

RabbitMQ是基于AMQP协议开发的一个MQ产品&#xff0c; 首先我们以Web管理页面为 入口&#xff0c;来了解下RabbitMQ的一些基础概念&#xff0c;这样我们后续才好针对这些基础概念 进行编程实战。 可以参照下图来理解RabbitMQ当中的基础概念&#xff1a; 虚拟主机 virtual hos…