[关闭]
@1kbfree 2018-04-18T16:39:20.000000Z 字数 1213 阅读 1083

上传漏洞

渗透


IIS解析漏洞

www.xxx.com/1.asp/1.txt会解析成asp文件来执行
www.xxx.cin/1.asp;1.jpg也会解析成asp文件

Apache

在1.x和2.x中存在此漏洞

www.xxxx.com/1.php.name.it.hack会被解析成PHP文件执行(因为当Apache遇到不认识的扩展名的时候,会从后向前解析,直到碰到能解析的扩展名为止)
Apache认识哪些扩展名可以在这而看/conf/mime.types

Nginx解析漏洞

www.xxx.com/1.jpg/1.php会成PHP文件来解析

黑名单和白名单验证绕过方式

白名单是设置能通过的用户,白名单以外的用户都不能通过。
黑名单是设置不能通过的用户,黑名单以外的用户都能通过。

黑名单绕过:

一般人都会选择不允许这些后缀的文件上传:
1. php
2. jsp
3. asp
4. php5
5. asa
6. aspx

白名单绕过:
可以利用前面说的解析漏洞。
或者用Burp修改数据包。

MIME验证

MIME验证用来设定某扩展名文件的打开方式,浏览器会使用指定的程序打开,比如GIF图片的MIME是image/gif,PDF文件的MIME是application/pdf,详细的自行百度。

  1. <?php
  2. /**
  3. * @Author: iamfree
  4. * @Date: 2018-04-18 13:47:03
  5. * @Last Modified by: iamfree
  6. * @Last Modified time: 2018-04-18 22:44:19
  7. */
  8. if(isset($_POST['submit'])){
  9. if($_FILES['file']['type']=='image/png' or $_FILES['file']['type']=='image/jpeg' or $_FILES['file']['type']=='image/php'){ //这里对上传的文件的MIME类型进行了判断
  10. $name = '上传成功!上传的文件是:'.$_FILES['file']['name'].' ';
  11. $size = '文件大小是:'.$_FILES['file']['size'].' ';
  12. }else{
  13. $name = '抱歉!你上传的文件有误,请阻止你那肮脏的思想~';
  14. }
  15. }else{
  16. $name = "你没上传文件";
  17. }
  18. ?>
  19. <div class="jumbotron">
  20. <h3><?php echo @$name,@$size?> <small><a href="./index2.php">返回文件上传处</a></small></h3>
  21. </div>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注