剑走偏锋:IIS偏门
作者:Lenk
出处:Lenk技术联盟http://www.slenk.net
事出有因,在看一个站点时候,得到一个注射点,站点类型为php+mysql,windows2003,一般情况下PHP报错会暴露出物理路径,不过如果在php.ini里配置了禁止错误日记显出或者在php脚本里用report控制出错信息的情况,很多出错信息都不能反馈给访问的客户端,在我们判断出 php注射点的执行账号为root的时候,我们习惯性的要导出一个shell或者loadfile读取文件代码。很可惜,我遇到的这个站点并没有任何的出错信息反馈回来,出错只给一个空白的页面,拿到root的时候窃喜,爆出表名,数据库等,资料收集得差不多了,就想把服务器拿下来,想着常规路线:loadfile或者select 'eval code' into outfile 'webpath\eval.php'。想起没有物理路径,心里挺痛苦的,思路陷入了僵局。
倒了一杯水回来之后,看看收集的信息,想到了WIN的IIS6.0配置文件,MetaBase.xml,以前打开过这份文件里面保存着IIS的配置信息,保存位置:系统盘符\system32\inetsrv\MetaBase.xml。关于这个文件百度上有很多文章,你可能搜索出来的更多是关于 WINDOWS2003下的200kb上传限制的修改问题,当时我也是因为修改上传限制去研究这个文件的,IIS的配置库,是xml格式,我们用 mysql的loadfile函数是可以读取的MetaBase.xml记录了IIS里面所有站点的详细信息,包括站点目录,站点绑定主机头等,我们来 loadfile一下
http://target.com/php.php?id=1 union%20select%201,2,load_file(0x433A5C57494E444F57535C73797374656D33325C696E65747372765C4D657461426173652E786D6C)%20from%20mysql.user–