短标签绕过
1. <?php echo ('123') ?> ---- 常规写法
不需要开启参数设置
2. <?=(表达式)?> 等价于 <?php echo (表达式)?>
注:
利用短标签写法可以绕过一些对php字符的过滤
Windows环境中短标签默认是打开的,Linux下 默认是关闭的。
控制参数: php支持短标签,需要我们把short_open_tag 设置为On.
3. <% echo '123' %>
注:需要配置php.ini文件。在配置文件中找到asp_tags=off ,将off改为on。改动配置文件后需要重启apache。经过测试发现7.0及以上修改完之后也不能使用,而是报500错误,但是7.0以下版本在修改完配置后就可以使用了。
4. <script language=”php”> </script>
不需要修改参数开关,但是只能在7.0以下可用。
web151-前端验证
抓包,上传图片的格式为png的,用burp抓包后修改成php的即可!
web152-Content-Type检查
把Content-Type: image/png修改成php即可,因为上传的是png图片,然后再修改的内容,所以就没有被拦截!
web153-后端不能单一校验-user.ini
先上传一个.user.ini文件,内容是auto_prepend_file=shell.jpg
然后再上传一个shell.jpg文件,shell.jpg文件内容是一句话木马的webshell
用蚁剑连接即可!
.user.ini文件中有两个配置项:
auto_append_file、auto_prepend_file
auto_prepend_file = < filename> // 包含在文件头
auto_append_file = < filename> // 包含在文件尾(遇到exit语句失效)
注意:
1.这两个配置项相当于文件包含 require()
2.该目录下必须存在.php文件
https://blog.csdn.net/qq_45742511/article/details/113817332
web154-后端不能单二校验-.user.ini 大小写绕过
一个是过滤了大小写,然后还有一个就是读不出flag.php的内容,最后的f*的方式有点像正则,主要利用的是Linux的特性。
web155-后端不能单三校验-短标签的方式绕过
web156-后端不能单四校验-短标签还是可以绕过
web157-后端不能单五校验-可以短标签
这个题目过滤了system函数,所以就用到了反引号``
web158-后端不能单六校验-
web159
短标签+反引号的方式绕过
web160
方法一:
方法二:
利用日志包含的方式进行注入绕过。
web161
参考博客
https://blog.csdn.net/unexpectedthing/article/details/119479054
https://blog.csdn.net/weixin_45551083/article/details/110289593
https://tyskill.github.io/posts/ctfshow%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0/#web154158