实验过程
搭好靶场后直接访问网页
看看进入不同栏目的url变化
注意到上面的参数r的变化,尝试输入admin访问。返回空白界面
root,也是空白
直接访问php文件试试。被重定向了。
算了,也没找到登录界面,还是看看网页源代码吧。
能看到r取不同值时的链接
注意到一个js脚本,里面显示index.php还有一个参数f,而且传入的值还是php文件,怀疑存在文件包含漏洞。
测试一下是不是远程文件包含漏洞,确实是
那就很简单了,直接包含一句话木马文件,蚁剑连接
然后看到,后台管理的文件在名为houtai的文件夹里……
看了看登录文件的代码
没有锁账号的机制,可以bp爆破
爆破结果是admin 123456(这个安装时自己设置的)(话说回来,我可以直接改代码打印用户名和密码表啊)
代码分析
在首页的代码中,包含了含有文件包含漏洞的头文件header.php
漏洞代码如下,会直接包含f的值
总结
做渗透测试时,可以在前端找找有没有文件包含漏洞,如果是远程文件包含漏洞的话,就可以通过蚁剑连接了。
切记:远程包含的php文件,对服务器来说,能直接在文件所在目录解析,所以会在文件所在目录运行;而txt文件,服务器需要先将文本内容读取到服务器才能当成php代码解析运行。所以利用远程文件包含漏洞时,一般都包含txt这种无法被服务器可以在本地目录解析运行的文件。
感想
最开始上传这篇博客是因为做完实验没有搜索到有关这个漏洞的文章,所以很快就写好上传了。但后面发现很多错误,导致这篇博客改了很多次,一开始混淆了本地文件包含和远程文件包含,后来又发现远程包含php文件会直接在文件原本目录下执行,包含txt反而可以。以后发表博客时,最好还是对上传内容多做些检查,不能因为兴奋情绪忽视了其中存在的错误。