做淘宝客网站需要什么要求合肥百度推广公司哪家好

当前位置: 首页 > news >正文

做淘宝客网站需要什么要求,合肥百度推广公司哪家好,中国菲律宾混血,wordpress对联转自先知社区 作者#xff1a;dot.Net安全矩阵 原文链接#xff1a;.NET 某和OA办公系统全局绕过漏洞分析 - 先知社区 0x01 前言 某和OA协同办公管理系统C6软件共有20多个应用模块#xff0c;160多个应用子模块#xff0c;从功能型的协同办公平台上升到管理型协同管理平…转自先知社区 作者dot.Net安全矩阵 原文链接.NET 某和OA办公系统全局绕过漏洞分析 - 先知社区 0x01 前言 某和OA协同办公管理系统C6软件共有20多个应用模块160多个应用子模块从功能型的协同办公平台上升到管理型协同管理平台并不断的更新完善全面支撑企业发展。从此OA C6版本外部已公开的多个漏洞详情不难发现都有一些共同的特点那就是URL里的 .aspx后都会加上一个 / 然后再进行传递参数。比如 /RssModulesHttp.aspx/?interfaceID1为此有一些对.NET感兴趣的群友们在星球陪伴的微信群里问起这个原因。 于是笔者带着这些疑问点抽空研究总结了一下于是便有了此文。 0x02 ExtensionlessUrlHandler 笔者对.NET系统进行漏洞挖掘时第一步喜欢看一下Web.config配置文件因为此文件包含了一些关于HTTP请求需要经过的管道或者自定义方法如下所示。 在这里我们发现了一个名为ExtensionlessUrlHandler的一般处理程序关于此handle背景知识是这样的.NET WebForms框架早期版本中对于URL请求的设计和管理一直沿用经典的ASP风格通常URL地址上包含文件及扩展名比如 UserName.aspx、CheckUser.ashx 等。随着 Web 开发的进步和用户体验需求的提升陆续出现像MVC框架对无扩展名 URL的需求即 extensionless URL。 无扩展名 URL 更简洁、易读用户更容易记住和输入。例如/about 比 /about.aspx 更直观和易记。因此.NET框架在后来4.0发布时引入了一个ExtensionlessUrlHandler这是一个专门用于处理无扩展名 URL 请求的 .NET Handler。 当启用该配置后基于WebForms框架实现的Web应用便可以像MVC那样通过使用 / 分割路径和参数。这比如 /Mall/Product/GetById/10 使用该组件时需要当运行在IIS7以上版本并且需要IIS的一个快速修复程序KB980368配置Web.config后将会正常处理上面这种 extensionless URL。 在IIS经典模式下用的是aspnet_isapi.dll通过映射到System.Web.DefaultHttpHandler进行处理如下配置所示。 system.webServer handlersaddnameExtensionlessUrl-ISAPI-4.0_32bitpath.verbGET,HEAD,POST,DEBUGmodulesIsapiModulescriptProcessor%WINDIR%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dllpreConditionclassicMode,runtimeVersionv4.0,bitness32 responseBufferLimit0 / /handlers /system.webServer在集成模式下会映射到System.Web.Handlers.TransferRequestHandle来处理如下配置所示。 system.webServerhandlersremove nameExtensionlessUrlHandler-Integrated-4.0 /remove nameOPTIONSVerbHandler /remove nameTRACEVerbHandler /add nameExtensionlessUrlHandler-Integrated-4.0 path. verb* typeSystem.Web.Handlers.TransferRequestHandler preConditionintegratedMode,runtimeVersionv4.0 //handlers /system.webServer这段配置中path. 匹配所有无扩展名的 URL 请求verb 表示谓词就是IIS处理所有 HTTP 请求方法包含了GET/POST/DELETE/PUT 等。type更是直接指向System.Web.Handlers.TransferRequestHandler调用使用TransferRequestHandler处理程序解析运行请求。preCondition表示预先处理的条件必须是应用程序池使用集成模式并且运行时版本为 v4.0 时生效。 ExtensionlessUrlHandler 的引入是为了满足当时WebForms应用具备现代 Web 架构对无扩展名 URL 的需求。随着.NET后续版本的迭代和更新Web框架已不再需要此项配置便可实现无扩展名的URL。 0x03 JHSoft.Log.HttpModule 我们知道在 .NET 应用程序中HTTP Modules用于处理进入的 HTTP 请求的生命周期事件。通过自定义 HTTP Modules可以为应用程序添加日志记录、安全验证防护等功能。在企业级应用某和OA中我们可以看到对 HTTP 模块做了如下配置例如 modules runAllManagedModulesForAllRequeststrueadd nameJHSoft.Log typeJHSoft.Log.LogHttpModule, JHSoft.Log/add /modules上述配置指定HTTP请求需要经过JHSoft.Log.LogHttpModule模块从名称上看应该是记录请求等日志数据的其实反编译后发现不仅做了日志的处理还有对整个请求做了安全校验。具体代码如下图所示 Init 方法用于初始化自定义的模块并注册一系列事件处理程序其中AcquireRequestState事件在获取当前请求的状态时触发常用于检查请求的数据。具体定义如下图所示 代码中对aspx扩展名做了深入的处理通过 context.Request.Path.ToLower(); 获取请求路径并转换为小写然后text.EndsWith(.aspx) 判断请求路径是否以 .aspx 结尾如果是则调用 SqlFilter 方法检查请求是否包含敏感字符这是一个防御SQL注入的方法。 这么看如果是.ashx或者.asmx文件有注入漏洞则完全不受该约束可以顺利的进行SQL注入攻击。 如果没有注入的风险程序会继续向下执行通过 if ((context.Session null || context.Session[UserCode] null) … 检查会话是否为空。接着通过类似这样的判断 text.IndexOf(/jhsoft.web.login/password.aspx) -1 排除特定的页面除此之外所有的请求都会被强制重定向至登录页。这里和某通一样在此处定义了很多需要排除验证的文件如下图所示 比如我们选择其中的一个文件名作为测试访问 /jhsoft.web.workflat/isconnect.aspx 返回了预期的结果并没有重定向到登录页。 0x04 全局绕过权限验证 经过上面两小节的分析得知某和OA支持像MVC那样无扩展名的路由请求而在全局用于检查的AcquireRequestState事件中错误的使用了EndsWith方法判断URL请求是否包含.aspx因此我们可以构造出如下请求达到绕过全局的校验如下所示。 /c6/JHsoft.web.Workflat/SetImageModule.aspx/id/121212或者使用 /c6/JHsoft.web.Workflat/SetImageModule.aspx/?id2222 均可以实现未授权访问。如图所示 我们以外部公开的RssModulesHttp.aspx存在SQL注入漏洞为例查看此文件的Page_Load方法发现参数 interfaceID 从 Request.QueryString客户端获取后并没有做任何过滤和处理便进入了 GetRssInfo函数如下图所示 GetRssInfo 方法用于从数据库中获取特定 RSS 接口的信息。它使用传入的 interfaceID 参数来查询数据库中的 WFRssModule 表并返回查询结果具体代码如下图所示。 上述传入的 interfaceID 直接拼接到 SQL 查询字符串中并且执行查询因此触发MSSQL注入漏洞如下图所示。 0x05 总结 该系统由 ExtensionlessUrlHandler 和 JHSoft.Log.Module 组件两者配合引发的全局绕过漏洞攻击者只需要构造出特定的URL请求便可实现任意接口的未授权访问也证明了 Web应用程序在配置和权限管理上的薄弱环节因此不当的配置可能导致严重的安全漏洞。