【FSCTF 2023】EZ_eval
Contents
[FSCTF 2023]EZ_eval
思路
-
源码
1 2 3 4 5 6 7 8 9 10 11
<?php if(isset($_GET['word'])){ $word = $_GET['word']; if (preg_match("/cat|tac|tail|more|head|nl|flag|less| /", $word)){ die("nonono."); } $word = str_replace("?", "", $word); eval("?>". $word); }else{ highlight_file(__FILE__); }
这里有三个问题
?
过滤eval
命令前加了php结束符,无法执行我们输入的指令- 关键字过滤
相对需要着急解决的是的 2,因为不解决啥也干不了。
-
对 2 解决方法
-
<? echo '123';?>
但前提是前提是开启配置参数short_open_tags=on
-
<script language="php">echo 'hello';
不需要修改参数开关,但是只能在7.0以下可用
-
<% echo '123';%>
开启配置参数
asp_tags=on
,并且只能在7.0以下版本使用
-
-
对 1 解决方法:2 的第二个解决方法就顺带解决了
-
对 3 解决方法
反斜杠绕过
Payload
|
|
总结
- RCE
- eval执行时用了php的结束标志?>绕过
- WAF绕过