现在的位置: 首页 > 综合 > 正文

最近总结了asp.net一些编写时基本的容易犯得漏洞

2013年03月08日 ⁄ 综合 ⁄ 共 1083字 ⁄ 字号 评论关闭

1)Response.WriteFile();

这条语句用来将一个文件直接写入响应流,我们可能会用它显示一个图片或者显示一个TXT文件里面的内容,等等,但我下面来举个例子,看看这条语句可能会带来的隐患:

1。新建一个Handler.ashx页面

2。里面写入代码

public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        string r = context.Request["re"].ToString();
        context.Response.WriteFile(r);
    }
很简单,就是通过一个传值来显示一个文件的内容,这种用法其实挺常见,我们可以在另一个页面掌一个image控件,图片地址为Handler.ashx?re=某个图片地址,来显示图片,动态的给image控件加载图片,但如果用户直接访问“Handler.ashx?re='./Handler.ashx'”;你就惨了,这个页面的源代码就会被下载,如果这个页面有重要东西的话,网站安全性就会有危机。

注:首先在Handler.ashx判断传值,要传图片,传的值后缀就是图片类型,禁止其他类型,其次,少用Response.WriteFile。

2) xxs

这个不多说了,看起来时一个简单漏洞,可每年都有大型网站曝这个东西出来,所以还是注意点好。

3) WebShell

上传控件,听起来很常用,其实,有时候,它也会爆出漏洞,举个例子,假如你提供一个上传控件允许用户上传头像到服务器硬盘:

FileUpload1.PostedFile.SaveAs(路径);如果用户通过url能够看出你将要将文件放到的文件夹的相对路径,而你又没有检查上传的文件的相关类型信息的话。用户大可这样:

1。新建一个页面,添加

protected void Page_Load(object sender, EventArgs e)
    {
        System.IO.File.Delete(服务器某个文件的路径); //就是说,用户可以通过这个控件上传到服务器任何自己写的代码,他可以做任何事情,是不是你会觉得很不安全啊,他可以删除你的文件,可以想办法窃取你的数据库,等等。
    }

2。用户访问http://你的域名/那个上传文件夹的相对路径/用户刚才上传的文件名。这样,用户写的代码就得到执行了。

注:所以,记住首先判断上传的文件的类型、后缀;其次给服务器的文件及文件夹设置权限;

4)sql注入。

这个不说了。

抱歉!评论已关闭.