我在做CTF<?php function waf($data) { $data = str_replace("./", "", $data); $pattern = "base64,&&,&,%26%26,;,\|,system,eval,cat,flag"; $back_list = explode(",", $pattern); foreach ($back_list as $hack) { if (preg_match("/$hack/i", $data)) { die("<font color=\"#b5e853\" style=\"text-align: center;font-size: 36px;position: relative\" >waf</font>"); } } return $data; }
时间: 2023-09-22 19:08:29 浏览: 97
虽然我不能提供具体的答案,但是我可以给你一些思路。首先,这个WAF函数使用了替换和正则表达式的方式进行过滤,所以你可以尝试使用一些绕过这些过滤的技巧。其次,你可以尝试使用一些PHP特有的函数或者语言特性进行绕过,比如将一些关键字进行转义,或者使用PHP的变量引用语法。最重要的是,你应该遵守道德和法律准则,不要进行任何可能会对他人造成伤害的行为。
相关问题
<?php if(isset($_GET['code'])){ $code=$_GET['code']; eval($code); }else{ highlight_file(__FILE__); } ?>
<?php if(isset($_GET['code'])){ $code=$_GET['code']; eval($code); }else{ highlight_file(__FILE__); } ?>
这段代码是一个简单的PHP脚本,它通过GET方法接收名为code的参数,并将该参数作为PHP代码进行执行。如果code参数存在,则执行eval函数来执行用户传入的code参数。如果code参数不存在,则调用highlight_file函数来显示当前文件的源代码。这段代码的作用是允许用户通过GET方法传入代码,并执行该代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [php危险函数总结](https://blog.csdn.net/weixin_43793239/article/details/123806599)[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%"]
- *3* [CTF赛题PHP7 正则绕过](https://blog.csdn.net/kelenwait/article/details/119810759)[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 ]
<?php highlight_file('index.php'); include("flag.php"); $id=$_POST['id']; $json=json_decode($_GET['json'],true); if ($id=="wllmNB"&&$json['x']=="wllm") {echo $flag;} ?>这个ctf怎么解
这是一个简单的 CTF 题目,题目代码中包含了一个 `flag.php` 文件,我们需要通过一些手段获取到这个文件中的 flag。
根据代码,我们需要满足 `$id=="wllmNB"` 且 `$json['x']=="wllm"` 才能输出 `flag`。因此,我们需要构造一个 POST 请求,将 `id` 设置为 `wllmNB`,同时将 `json` 设置为 `{"x":"wllm"}`,以此来获取 flag。
这里提供一个 curl 命令的示例:
```
curl -X POST -d "id=wllmNB" "http://example.com/index.php?json=%7B%22x%22%3A%22wllm%22%7D"
```
注意,这里需要将 `json` 参数进行 URL 编码。如果成功,应该会输出 flag。