CTFshow web(php命令执行 45-49)

基础知识:

1.绕过cat使用:

tac more less head tac tail nl od(二进制查看) vi vim sort uniq rev

2.绕过空格用:

%09 <> ${IFS} $IFS$ {cat,fl*} %20

注:

%09  ##(Tab) %20 ##(space)

3.对flag的过滤(这里也就几个,索性就全丢出来了)

1.‘’    (例如fl‘’ag)

2.“”     (例如fl""ag)

3.?       (例如fl??)

4.*          (例如fl*)

我之前的一篇文章把所有常见过滤大致总结了一次,还有各种逃逸过滤攻击,建议花两分钟看看,接下来这个栏目的刷题很大都会围绕这篇文章的内容刷题。

                                                                        web45

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-05 20:49:30
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-05 21:35:34
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/


if(isset($_GET['c'])

### CTFShow Web 入门命令执行挑战解析 在处理CTFShow平台中的Web类别入门级别命令执行挑战时,理解如何利用PHP代码注入来实现远程命令执行(RCE)至关重要。通过分析给定的参数传递方式以及服务器端脚本的行为模式,可以找到绕过简单过滤机制的方法。 对于此类题目,通常会提供一个带有漏洞的应用程序接口,允许攻击者通过特定输入点提交恶意数据。在这个例子中,存在两个主要入口用于测试:一个是基于URL查询字符串的方式;另一个则是表单POST请求方法[^3]。 #### 利用PHP函数进行命令执行 当遇到能够控制部分PHP源码的情况时,可以通过精心构造payload触发底层操作系统指令调用。例如,在给出的例子中有如下形式: ```php <?php echo `ls`; ?> ``` 这段代码会在当前工作目录下执行Linux/Unix系统的`ls`命令并显示其输出结果。为了进一步探索文件结构或读取敏感信息,可替换为其他有用的操作系统命令组合,如`cat`、`find`等。 针对此题目的具体场景,如果目标是获取某个特定PHP文件的内容,则可以根据上下文调整上述模板以适应实际需求。比如要逆向打印整个`ctfshow.php`文件内容,可以构建这样的HTTP GET请求: ``` ?v1=1&v2=system("tac%20ctfshow.php")/* ``` 这里使用了GNU/Linux特有的`tac`工具代替常见的`cat`命令,从而实现了从最后一行到第一行反序展示文本的效果。同时注意到了SQL注释符`/* */`的存在,这有助于屏蔽掉后续不必要的字符干扰。 另外一种常见技巧涉及直接访问内部变量状态,这对于调试和信息收集非常有帮助。假设想要查看名为`$ctfshow`的数据项详情,那么就可以发送类似下面所示的链接地址: ``` ?v1=1&v2=var_dump($ctfshow); ``` 这种方法依赖于PHP内置诊断功能——`var_dump()`函数,它能清晰地呈现出传入表达式的类型及其值。 #### 绕过基本防护措施 尽管某些情况下可能存在简单的正则表达式匹配型WAF(Web Application Firewall),但只要掌握了它们的工作原理就很容易规避这些限制。观察提供的WAF检测逻辑可知,主要是对一些关键字进行了黑名单过滤[^4]。因此,在设计最终有效载荷之前应当仔细考虑怎样巧妙避开那些被监控的关键字列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值