欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

浅谈Asp.net代码审计之会议室预定系统Book3.0SQL注入(二)

来源:本站整理 作者:佚名 时间:2019-07-30 TAG: 我要投稿


 
0x1 前言 (ForeWord)
继上篇浅谈Mac上手 Asp and Asp.net 代码审计(一)文章,我本来打算接着研究下去的,然而自己做其他事情搁置了,还好最近放假了,能抽出点时间来进行学习下了。我们可以去找asp.net的cms来进行漏洞分析来提高自己的代码审计能力,所以今天我打算以启明星会议室预定系统Book v3.0这个系统作为审计对象。
 
0x2 补充一些基础概念
经典ASP(Active Server Pages 动态服务器页面)
asp是一种使得网页中的脚本在因特网服务器上被执行的技术。
asp页面的文件扩展名是.asp 通常使用VBScript语言来编写。
后面关于Asp的更多内容,我会在下篇文章通过分析新云网站系统程序来做更详细的理解
ASP.NET
ASP.NET 是新一代ASP。它与经典ASP是不兼容的,但ASP.NET可能包括经典ASP
ASP.NET 页面经过编译的,所以运行速度比经典ASP快
ASP.NET 具有更好的语言支持
ASP.NET 页面的扩展名是.aspx,通常是用VB(visual Basic) 或者 C#(C sharp)编写(主要是C#)
关于使用的语言还有一种就是Jscript.net,我们平时用的aspx一句话就是基于此的,因为其他中间语言已经没有了
eval函数
%@ Page Language=”Jscript”%>
ASP.NET 中的控件可以用不同的语言(包括C++ 和 Java)编写。
当浏览器请求ASP.NET 文件时,ASP.NET引擎读取文件,编译和执行脚本文件,并将结果以普通的HTML页面返回给浏览器。
ASP.NET文件扩展名
经典 ASP 文件的文件扩展名为 .asp
ASP.NET 文件的文件扩展名为 .aspx
Razor C# 语法的 ASP.NET 文件的文件扩展名为 .cshtml
Razor VB 语法的 ASP.NET 文件的文件扩展名为 .vbhtml
ASP.NET Razor
Razor 是一种将服务器代码嵌入到 ASP.NET 网页中的新的、简单的标记语法,很像经典 ASP 。
Razor 具有传统的 ASP.NET 的功能,但更容易使用并且更容易学习。
这个了解下就好了,平时很难遇到。
 
0x3 Asp.net的编译及其发布 (Principle of compilation and release)
我们平时用 vc++开发asp.net的流程一般是:
建立C# web程序 -> 选择模版 -> 对源码进行开发 -> 编译 -> 发布

关于Core web and Framework 两种框架在.NET生态

THE .NET Framework:
是过去经常使用的,用这个可以创建windows应用程序还有web applications,现在你可以用他创建winform,uwp,wpf等等相关的应用程序,web方式就是 Asp.net MVC
.NET Core :
是微软最新推出的开源的、跨平台的框架
其实两者最大的区别和选择: 程序是否需要跨平台性,其他的话就是一些开发特点(问题不大)
补充(zsx师傅说framework是一种遗留产物,Core的话是全新的框架)
关于asp.net web开发,通常也有两种开发方式: webSite and webApplication( 也就是 网站与web应用程序的区别。)
但是开发的话通常会选择采取web应用程序去开发,我们可以简单看下两者的区别。
web应用程序模型:
1.网站编译速度快
2.可以指定网站项目生成单一的程序集
3.方便管理各个项目
4.每次修改都需要重新编译,把所有处理程序编译成一个程序集(项目名.dll)
web 网站模型:
1.动态编译该页面,不用编译就可以看到效果,适合小网站的开发(有点类似php即视感)
2.每一个处理程序文件都是单独的,比如1.aspx报错不会影响到2.aspx的执行,web应用程序则相反。
3.每次运行都会即时编译一个程序集dll文件,可以用
context.Response.Write(System.Reflection.Assembly.GetExecutingAssembly().Location)
获取到dll文件的位置。
怎么区别呢?
项目就是一个应用程序,在vs中查看的时候,项目中建立的一般处理程序,有两个文件,比如First.ashx还有First.ashx.cs而网站只有一个First.ashx,但是他们写代码是一样的。
还有就是项目中的一般处理程序有命名空间,而网站没有命名空间。
因为命名空间作用是为了区分类同名的情况,而网站一个文件就是一个独立的程序。
例子就是:
First.ashx对应代码如下
"C#" CodeBehind="First.ashx.cs" class="webApplication1.First" %>
然后是一个 First.ashx.cs 文件,会有个空间声明
 
namespace webApplication1{
 public void First : IHttpHandler
 {
 ………………..
 }
}
这就是网站应用程序的特点
而asp.net 网站的特点就是没有命名空间
"C#" class="First" %>
 public void First : IHttpHandler
 {
 ………………..
 }
 
0x4 浅探Asp.net 反编译原理
我们先了解下程序集的概念:
程序集,是基于.net平台,*.dll,*.exe为后缀的文件。
分类: 私有程序集 和 共享程序集
程序集包括:
1.windows文件首部 作用就是告诉window操作系统去区别asp.net 、 winform 和 控制台应用程序
2.CLR 首部信息: .NET 程序的标志
3.元数据:MeteData 描述数据的数据
4.程序集清单: 记录程序包含的dll程序以及相关版本信息
5.可选的内嵌资源
单文件程序集:
我们新建一个类库工程,然后编译就会得到一个*.dll的文件。
多文件程序集:
由多个模块构成的程序集,就是把另外的程序当作一个模块写进了另外一个dll。

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载