【Ctfer训练计划】——(九)

作者名:Demo不是emo
主页面链接: 主页传送门
创作初心: 舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷
座右铭: 不要让时代的悲哀成为你的悲哀
专研方向: web安全,后渗透技术
每日emo: 庆幸的是我们相遇过
【Ctfer训练计划】——(九)_第1张图片

一、覆盖参数绕过

题目 :web33
训练平台 :ctfshow
题目描述命令执行,需要严格的过滤

容器环境打开如下

【Ctfer训练计划】——(九)_第2张图片
代码逻辑这里就不再讲了,跟前面一样,就是get传入一个c变量,只要你能绕过它的限制,就能将c作为命令执行,要求读取flag.php文件

可以看到比前面几关的过滤就严格了很多,但都是针对c变量的,这里还是用我们的参数覆盖大法配合includephp伪协议查看flag文件,payload如下

url/?c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php

这样就可以得到经过base64编码后的flag.php,再拿去解码就能拿到flag,

二、覆盖等号绕过

题目 :web35
训练平台 :ctfshow
题目描述命令执行,需要严格的过滤

环境打开如下

【Ctfer训练计划】——(九)_第3张图片

代码逻辑和上面差不多,只是过滤中多了等于号,但还是对c进行过滤,其实你仔细看上面那道题的payload就能发现我们给c传入的值只是include$_GET[1],并没有等于号,所以上面那道题的payload在这里还是可以用的,即

url/?c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php

效果同上

三、覆盖数字绕过

题目 :web36
训练平台 :ctfshow
题目描述命令执行,需要严格的过滤

环境打开如下

【Ctfer训练计划】——(九)_第4张图片

也没啥说的,多了一个对数字的限制而已,还是用上面的payload就可以了,但是上面传的参数是1,所以这里就要换一下了,随便换个变量名,只要不是数字就可以了,如下

url/?c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php

你可能感兴趣的:(Ctfer训练计划,php,开发语言,web安全,网络)