这是我编撰的第二篇剖析web.config安全问题的文章。早在2014年[1]的时分,咱们编撰过一篇这方面的文章,其间介绍了一种运转ASP经典代码的办法,以及怎么仅经过上传web.config文件发起存储型XSS进犯。
在这篇文章中,咱们将着眼于运转web.config文件自身,以及在把web.config上传到IIS服务器上的应用程序过程中能够派上用场的其他技能。这儿的首要方针,是运用web.config文件在服务器上履行代码或指令,以及针对存储型XSS的其他进犯技能。
本文中描述的技能能够分为两大类,详细取决于它们是否能够在应用程序根目录或子文件夹/虚拟目录中上传web.config文件。假如您不熟悉触及IIS的虚拟目录和应用程序等术语的话,请参阅文献[2]。此外,我编撰的另一篇文章[3],关于在黑盒评价期间辨认虚拟目录或应用程序也是十分有用的,咱们无妨读一下。
1. 运用根目录或应用程序目录中的web.config履行指令
当一个应用程序现已运用了一个即将被咱们的web.config文件替换的web.config文件,而咱们的web.config文件又没有进行正确的设置的时分——例如数据库衔接字符串或一些有用的程序集引证等,这种办法将会带来巨大的破坏性。当应用程序或许运用了即将替换的web.config文件时,主张不要在实践网站上测验这种技能。关于坐落其他应用程序或虚拟目录中的IIS应用程序来说,由于它们很或许并不运用web.config文件,因而,一般要比坐落网站的根目录中的程序要更安全一些。下图展现的是坐落testwebconfig应用程序内部的示例应用程序anotherapp,它也坐落Default Web Site目录中。
假如能够修正应用程序根目录中的web.config文件的话,进犯者就能够经过各种办法在服务器上履行指令。
在本文中,咱们将为读者介绍四个风趣的相关比如,详细如下所示。
1.1. 将web.config作为ASPX页面履行
这与文献[1]中的比如十分类似,不过,在应用程序的根目录中上传web.config文件的优点是,咱们能够得到更多的控制权,因而,咱们能够运用保管处理程序将web.config文件作为ASPX页面运转,详细如下所示:
")
' it is running the ASP code if you can see 3 by opening the web.config file!
Response.write(1+2)
Response.write("
-->
然后,只需阅读该web.config文件,体系就会将其作为ASP.NET页面来运转。明显,相关的XML内容也能够从网上进行拜访。实践上,假如运用具有.config、.jpg或.txt文件等扩展名的文件来完结上传的话,或许会更简单一些,由于这些带有这些扩展名的文件一般都能四通八达;完结上传之后,咱们就能够将其作为.aspx页面来运转了。
1.2. 经过AspNetCoreModule模块来运转指令
除此之外,咱们也能够运用ASP.NET Core模块来运转指令,详细如下所示:
阅读backdoor.me页面时,上述指令就会被履行,重要的是,这儿不要求该页面坐落服务器上! 这儿能够运用powershell指令作为反向shell。
1.3. 运用机器密钥
如文献[4]所述,能够在web.config文件中设置machineKey元素,以便运用反序列化功能在服务器上运转相关的代码和指令。
1.4. 运用json_appservice.axd
这是在.NET Framework的身份验证过程中运用已知的反序列化缝隙在服务器上悄 *** 地运转代码的一种好办法(有关详细信息,请参阅文献[5])。
In this case, the web.config file can look like this:
[1][2][3][4]黑客接单网