[ACTF2020 新生赛]Upload
fuzz


phtml
解题思路:上传phtml,蚁剑连接,获取 /flag。
这道题的特殊点:
虽然可以上传上去很多内容。
但是不是全都可以执行。
1.

如:试图用蚁剑连接PHP,返回数据为空。

用phtml连接则可以看到其实PHP已经上传上去了,只是没法执行。
猜测原因:
SetHandler application/x-httpd-php

这里故意留了一个口子,让phtml可作为php文件执行。
验证php可执行:在其中添加add.php文件。

即可连接成功

我的问题:如何禁止php3,phP等文件执行。
参考:phpinfo查看可以解析的后缀
https://blog.youkuaiyun.com/weixin_39539002/article/details/111837351
参考:禁止php3,phP等文件后缀
https://blog.youkuaiyun.com/qq15577969/article/details/108999350
A. .htaccess
<FilesMatch "\.(?i:php|php3|php4|php5)">Order allow,denyDeny from all</FilesMatch>
这个方法是在.htaccess中设置了禁止的方法。
但是看到服务器上的.htaccess并没有如此设置。
B. 修改apache的配置文件httpd.conf
<Directory D:\wwwroot\public\uploads><FilesMatch "\.(?i:php|php3|php4|php5)"> Order allow,deny Deny from all</FilesMatch></Directory>
对于这种允许很多种文件后缀上传但是不执行的题,有必要形成一个较小的字典。方便初级的逐一验证
我的问题:如何批量连接已上传的脚本,过滤出其中能够成功连接的webshell.
搜索发现蚁剑的插件可能满足该需求:
插件市场一直加载中:
蚁剑官方文档:
https://www.yuque.com/antswordproject/antsword
设置代理后依然一直加载中,用手工安装方式
https://github.com/orgs/AntSword-Store/repositories?type=all
找到github上代码,放到E:\antSword-2.1.11.1\antSword-2.1.11.1\antData\plugins
看看livescan插件

这个插件可以批量测试已创建好连接的存活情况,但是需要批量去创建连接,相当于只能完成一半的需求。这里要去学习antsword源码写个脚本?
或者试试pyshell?
另外 做的尝试:
1.首先上传.htaccess
SetHandler application/x-httpd-php
2.

依然是不能连接