尤其是第1个,如今极少有可能使我们在实战演练中找出phpinfo网页页面。可是假如目标电脑操作系统Windows,我们可以完成某些独特的Tricks来完成文件包含的完成。PHP在载入Windows文件时,会应用到FindFirstFileExW这一Win32API来查找,而这一API接口是支撑使用通配符的:实际检测下去,PHP中星号和感叹号并不可以立即做为使用通配符应用。但我们在msdn官网官方网站文本文档中还能够见到这类的详细说明:当中除开对号和感叹号外,还提及了3个特殊字符cmd_dota2、cmd_Qm、cmd_DBD,尽管官方网站并没有在文本文档中得出她们相匹配的值实际是啥,但在ntifs.h库函数中或是能找出她们的界定:这类,我们在Windows下,能够应用以上使用通配符来取代临时文件名称中的随机字符串:C:\Windows\Temp\php<<。(因为Windows里面的某些不太明确的缘故,这儿通常要用2个<来匹配好几个字符)
咱们立即向带有文件包含漏洞的网页页面发送1个上传包:依据前文得出的缓存文件周期,咱们上传的文件会在实行文件包含前被写进缓存文件中;文件包含时咱们完成Windows的使用通配符特性,在临时文件名称未知的情形下顺利包含,实行任意代码。说句题外话,这类上传文件的一起完成缓存文件的实际操作,我还在另篇文章《无英文字母数字webshell之提升篇》中也完成过,可是有的新手盆友或是难以了解这一环节:这的确是一个较为要从软件工程师逻辑思维转化到hack逻辑思维的环节,很多人较难了解的位置为何本来看起来是2个实际操作(文件上传+文件包含),却在一个请求中实行了,如果有这一疑惑,那样或是要再再次理解理解全部步骤。