首页
社区
课程
招聘
[原创]http put上传文件
发表于: 2010-6-10 18:15 12020

[原创]http put上传文件

2010-6-10 18:15
12020

上传文件  -----作者:ssLong  QQ:253651745
由于种种原因,开始学习web安全,初来乍到,所以是个不能再菜的菜鸟,但是看到看雪有这个模块,手也是很痒,所以想写点东西,与大家探讨学习...希望高人们指教,感激不尽!

上传文件漏洞,对于一个安全爱好者来说都不会陌生,一般指网站中有上传功能的地方,没有对上传文件的格式进行限制,(更准确点说,没有采用允许上传文件类型的策略,而是采用禁止上传文件类型的方法,让攻击者有机可乘)然而我说的这个可以上传文件的方法主要不是指这个,而是http put方法上传文件。

大家都知道,web使用的是应用层的http协议,然而http协议有很多方法,比如常用的get、post等常用的提交表单方法,然而http还有很多不常用的方法,put就是其中之一,可以实现上传文件功能。但是需要服务器开启该功能。这里我拿IIS服务器为例。

首先开启IIS使用put方法上传文件的功能:选中  IIS下 网站 右键 属性 主目录 本地路径下的 写入 选项 即 如图所示:

这样这个web服务器就可以使用http put方法进行上传文件了!

直接使用C#下的WebClient 可以很方便的实现 http put方法,具体代码如下
/// <summary>

        /// PUT 方法只要开启写入就可以上传文件txt/html/gif /php等图片(不能asp/aspx/shtm/cer/asa/stm/
        /// 因此当网站提供IIS写入功能可以上传gif等文件然后替换原来的图片达到修改页面的目的
        /// </summary>
        /// <param name="url"></param>
        /// <param name="local"></param>
        /// <returns></returns>
        public static bool UpLoadFile(String url, String local)
        {
            try
            {
                System.Net.WebClient myWebClient = new System.Net.WebClient();
                byte[] ret = myWebClient.UploadFile(url, "PUT", local);
                String strMessage = Encoding.ASCII.GetString(ret,0,ret.Length);
                MessageBox.Show(strMessage);
            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message);

                return false;
            }
            return true;

        }

具体程序见附近


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 2163
活跃值: (2000)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
IIS Put好像有点老了。。。作为漏洞2003以上不支持的
2010-7-20 22:45
0
雪    币: 233
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
老是老点,但是还有很多
2010-12-12 21:52
0
雪    币: 87
活跃值: (25)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
4
只是一种方法探讨
2010-12-16 20:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
只是一种方法探讨
2011-3-7 08:55
0
雪    币: 144
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
出现IIP Put主要还是配置IIS得问题。
2011-3-8 18:44
0
雪    币: 1240
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
知道PUT,但是一般IIS的配置只支持GET和POST,PUT几乎没有机会使用
2011-3-12 01:19
0
雪    币: 87
活跃值: (25)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
8
希望 大家挖掘新方法,期待中...
2011-5-9 15:59
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
是IIS 写权限漏洞吧  貌似很老了
2011-5-20 17:38
0
雪    币: 217
活跃值: (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
不知道这个东西的使用范围是多少
2011-5-23 12:23
0
游客
登录 | 注册 方可回帖
返回