几个月前,我对德国电信官网telekom.de作了一些子域名枚举,看看是否有一些新的子域名出现。因为德国电信只接收类似SQL注入和远程代码执行类的高危漏洞,所以如果够幸运的话,可以尝试在其子域名站点中去发现一些类似漏洞。
在跑了一遍aquatone 、dnsenum、 recon-ng 和 sublist3r之后,我收集到了telekom.de的所有子域名,在去除了重复项之后,我又创建了一个简单脚本利用dirb对每个子域名站点进行目录遍历。
本地文件包含(LFI)漏洞
几小时过后,当我检查dirb的运行结果后大吃一惊,竟然有一个子域名站点出现了info.php测试页面。我擅长PHP,而开发或架构者通常会在PHP部署上出现错误,留给黑客可入侵之机。info.php测试页中包含了路径、目录和位置等可用信息。
我尝试再进行试探之后,出现了一个登录页面,是时候启动Burpsuite进行一些spider操作了,不一会就跳出了一个这样的链接:
https://netweb.telekom.de/netweb/gui/help.php?HELPFILE=logon.hlp
我把其中的logon.hlp用以../../../../../../../../etc/passwd请求信息进行了替换:
https://netweb.telekom.de/netweb/gui/help.php?SID&HELPFILE=../../../../../../../../etc/passwd
Bingo:
再换成/etc/release:
最终,出现了多个本地文件包含(LFI)漏洞:
命令执行漏洞
有了LFI漏洞,但还不能构成命令执行条件。我尝试用error.log来发现一些信息,由于info.php ( phpinfo())文件是位于站点根目录下的,它里面的信息包含了error.log文件位置,如下:
https://netweb.telekom.de/netweb/gui/help.php?HELPFILE=../../../../../../../../../../../../../pkg/moip/netinfo/logs/apache-netweb-P/error.log
而在error.log的请求运行之后,其中还包含了之前用dirb跑出的文件soap.php信息,error.log中的一个数值还与referer值相关:
我们在curl请求下,用php echo方法来测试referer值响应输出是否会包含58-8=50的信息:
很好,error.log中竟然包含了58–8的测试值50输出:
那么也可以用它来响应phpinfo()信息:
利用error.log文件来执行phpinfo()的信息输出如下:
最终,我发给德国电信的漏洞报告如下:
最终,德国电信修复了这些漏洞。
*参考来源:@maxon3,freebuf小编clouds编译,转载请注明来自FreeBuf.COM
领取专属 10元无门槛券
私享最新 技术干货