WEB攻防-.NET项目
.NET项目
.NET是一个开源(MIT License)、免费、跨平台的开发平台框架,用于生成多种类型的应用程序。.NET 可以运行使用多种语言(C#、Visual Basic、F#)编写的程序,其中C#是最常用的语言。C#和JAVA很类似,是为了防止JAVA的垄断局面而孕育而生的
DLL文件反编译
DLL为动态连接库,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件,在Windows上,一个软件中出现最多的就是DLL文件
DLL文件可以类比为JAVA的jar包,存放各类函数的实现过程,当程序需要调用函数时先载入DLL,然后取得函数地址,最后进行调用,使用DLL的好处是不需要在运行之初加载所有代码,只需要在某个函数的时候从DLL中取出即可
DLL的文件格式与视窗EXE文件一样——也就是说,等同于32位视窗的可移植执行文件(PE)和16位视窗的New Executable(NE)。作为EXE格式,DLL可以包括源代码、数据和资源的多种组合(wiki百科)
其中,bin
目录下的文件代表的是可执行文件,.net项目中的dll文件中的核心代码是一个实例化的过程
web.config
是网站的配置文件
dll反编译工具:ILSpy
,直接将dll文件拖入工具中就可以实现反编译
aspx的核心代码被分装到dll文件中,具体哪个dll文件,可以看inherits
参数
如图,我们就可以在HdhCms下的admin下的activity中去寻找
Web.config信息泄露
web.config
中有一项customErrors mode
参数,该参数有On
和Off
两种状态
Off状态:
关闭就会爆默认错误,默认错误就会爆出一些中间件类型、文件路径等,造成一定的泄露
On状态:
开启将会由网站管理员定义如何报错,报什么错,可以报页面不存在或者404页面
身份验证未授权登录
未授权访问:后台需要登录才能访问,但是未登录就看到了后台的内容;普通用户可以访问会员用户的都算未授权访问
后端判断用户身份的方式: |
如何利用未授权访问漏洞: |
相关实例:
如果我们要绕过登录界面,首先要找到登录验证代码,我们可以通过反编译进行代码审计
首先这里有一个判断,如果GetUserId <= 0
,就跳转到login
界面,否则进入主页面,所以我们的主要目标在GetUserId
上,我们可以点击跳转到GetUserId
上
从代码分析后可知,我们可以看到首先userinfo
不能为空,倘如uesrinfo
不为空,则返回userinfo
下的userid
的整数值,所以我们只需要在Cookie
中加上userid
即可
发现可以成功绕过,存在未授权访问