第19天
名词解释
.NET 是一种由Microsoft开发的软件框架,用于构建和运行Windows操作系统上的应用程序。它提供了一个广泛的工具和库集合,支持多种编程语言,包括C#、VB.NET、F#等。.NET的主要目标是提供一种一致的开发平台,使开发人员能够创建各种类型的应用程序,从桌面应用程序到Web应用程序,再到移动设备应用程序。
ASPX(Active Server Pages Extended)是一种由Microsoft开发的用于构建动态Web应用程序的技术。ASPX文件通常包含在ASP.NET框架中使用的Web页面。ASP.NET是.NET框架的一部分,专门用于构建Web应用程序。
ASPX和ASP的中间件都是IIS,因此二者在中间件的漏洞是一致的。
DLL反编译
ASPX编写的网站一般会通过dll文件隐藏网站核心功能,dll类似被调用的文件,在主文件中调用dll后只需写几行很短的代码就可以了,而如果想要查看对应的完整代码时就需要对dll文件进行反编译 ,其中dll文件也会包含其他文件,因此可能需要反编译多个dll文件才能看到核心功能实现的完整代码。
自定义错误返回
网站目录下通常会有一个网站配置文件,其中有一个选项可以控制当用户访问错误的url返回的信息,如果开启则会返回开发者自定义的错误信息,如果关闭则会返回网站本身的报错信息,这可能包括一些目录结构以及代码逻辑,造成一定的信息泄露。一般情况下开发者在调试时才会关闭该功能(off),上线网站后会开启该功能(on),如果上线后依旧off,那么就可能泄露一些信息。
未授权访问
网站管理页面验证逻辑:
由于后台有多个管理页面,因此需要每个网页文件里都添加判断登录的代码,或者专门写一个判断登录的代码,其他文件包含即可。一般来说后者更方便,也是大多数所使用的,但是也可以在不登录的情况下访问到某些后台管理页面。
1.管理页面不包含判断文件
这种情况属于开发者忘记让该文件包含判断登录的文件导致用户可以在不登录的情况下访问到管理页面。
2.绕过验证文件
如果我们在代码审计或者知道判断登录的代码逻辑之后可以进行绕过,构造符合判断要求的值,也就可以访问到管理页面了。
以上两种方式一般在白盒测试中比较方便查找,而第一种如果是在黑盒测试中的话则需要利用工具扫出对应文件,然后依次进行访问判断。