DVWA-文件包含-目录遍历学习笔记
参考文献资料:
https://www.cnblogs.com/s0ky1xd/p/5823685.html
https://www.cnblogs.com/yuzly/p/10799486.html
一、文件包含与漏洞
文件包含:
开发人员将相同的函数写入单独的文件中,需要使用某个函数时直接调用此文件,无需再次编写,这种文件调用的过程称文件包含。
文件包含漏洞:
开发人员为了使代码更灵活,会将被包含的文件设置为变量,用来进行动态调用,从而导致客户端可以恶意调用一个恶意文件,造成文件包含漏洞。
二、文件包含漏洞用到的函数
require:找不到被包含的文件,报错,并且停止运行脚本。
include:找不到被包含的文件,只会报错,但会继续运行脚本。
require_once:与require类似,区别在于当重复调用同一文件时,程序只调用一次。
include_once:与include类似,区别在于当重复调用同一文件时,程序只调用一次。
三、目录遍历与文件包含的区别
目录遍历是可以读取web目录以外的其他目录,根源在于对路径访问权限设置不严格,针对本系统。
文件包含是利用函数来包含web目录以外的文件,分为本地包含和远程包含。
四、文件包含特征
?page=a.php
?home=b.html
?file=content
检测方法
?file=../../../../etc/passwd
?page=file:///etc/passwd
?home=main.cgi
?page=http://www.a.com/1.php
http://1.1.1.1/../../../../dir/file.txt
五、DVWA练习
如果有waf拦截,可以尝试进行各种编码,例如 url编码,unicode编码,HTML实体编码,base64编码等等!!
1.修改php.ini配置文件开启文件包含功能
allow_url_include = on
将DVWA的级别设置为low
1.分析源码,可以看到没有对page参数做任何过滤
本地文件包含
2.尝试利用文件包含
2.1绝对路径
如果说外部文件包含不成功,
在uplodfile里一直出现allow_url_include not enbale问题我试着修改DVWA里的php.ini文件但是没有效果
这时去修改phpstudy里的对应PHP版本里的php.ini则有效果!
2.2 相对路径
2.3远程文件包含
最 重 要 的 一 部 分 !!!!!!!!!!!!!!!!!!
3.使用PHP封装协议读取或写入文件
7.2日详细写!!!!
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
讲DVWA设置为medium
查看源码可以发现
对部分输入的内容进行了过滤
使用绝对路径就可以:
但是使用相对路径就不可以:
同样的文件使用相对路径就会报错,所以说这里当然可以使用绝对路径,但是也可以用别的方式进行绕过
这里使用unicode编码并不能进行绕过
尝试使用url编码
哈~仍然不能绕过,
URL编码走一波
在LOW防护水平下可以看到,是可以的
但是在Meduim水平中,URL编码也是无效。
既然编码不行,简单来说还可以双写绕过,大小写绕过,下面一一试试
这里看到大佬提示,使用..././..././..././..././..././..././..././ 绕过../的过滤
..././..././..././..././..././..././..././..././..././..././..././..././..././..././..././..././..././..././..././..././..././..././..././..././1.txt
可以看到哈,确实可以。
在Windows系统中,cd 只能进入文件夹,就比如图中的Windows/web文件夹,不能进入win.ini配置文件,但是在文件包含或者目录遍历中是可以的!!!
DVWA-文件包含-目录遍历学习笔记的更多相关文章
- Linux文件与目录管理(学习笔记)
本笔记为<鸟哥linux私房菜>第六章学习笔记 一.目录与路径 相对路径与绝对路径 绝对路径:一定由根目录 / 写起 正确度比较好 相对路径:不是由 / 写起 ...
- VS2008引入头文件包含目录和lib库目录
全局级别的引入 为VS所有项目设置包含目录和库目录,对所有项目都有效 如下图所示:工具-选项-项目和解决方案-VC++目录-包含文件:在此添加头文件目录即可 工具-选项-项目和解决方案-VC++目录- ...
- vc下项目的头文件包含目录以及库导入预计库目录设置
1.包含目录:include 头文件包含目录设置: project->setting->C/C++->常规: Additional include directories(附加包含目 ...
- HttpClient使用之下载远程服务器中的文件(注意目录遍历漏洞)
参考文献: http://bbs.csdn.net/topics/390952011 http://blog.csdn.net/ljj_9/article/details/53306468 1.下载地 ...
- mysqlbinlog- 处理二进制日志文件的实用工具 学习笔记
参考 MySQL 5.5官方简体中文参考手册完美版 8.6 节 调用: shell> mysqlbinlog [option] log-files... mysqlbinlog支持下面选项: ...
- C4 文件和目录:APUE 笔记
C4: 文件和目录 本章主要讨论stat函数及其返回信息,通过修改stat结构字段,了解文件属性. struct stat结构定义如下: struct stat { __dev_t st_dev; / ...
- Linux文件和目录的权限笔记
查看文件或者目录的权限命令:ls -al # -a 表示全部文件包含隐藏文件,-l 表示列出每个文件的详细信息 比如执行 ls -al total 115 drwxr--x--- 4 root roo ...
- Python 文件和目录操作学习
文件与文件路径 文件有两个关键属性:文件名和路径. 路径指明了文件在计算机上的位置. 文件名中,最后一个句点之后的部分称为文件的"扩展名",它指出了文件的类型 目录也叫文件夹,文件 ...
- 文件上传Upload 学习笔记
整理完自己还有点晕,看来还是得找点靶场自己练习练习Orz 1:客户端JavaScript校验 Burp改包即可 2:服务端对Content-Type进行校验 猜测后,修改对应Content-Type字 ...
随机推荐
- 如何在苹果电脑下载器Folx中管理下载列表
Folx是一款Mas OS专用的下载器,提供了便捷的下载管理.灵活的设置.今天小编准备跟大家聊一聊关于Folx中常见的几种下载管理方式. 一.管理任务状态栏 在Folx下载面板上,可以通过类别查看任务 ...
- 关于 spring security 对用户名和密码的校验过程
1.执行 AuthenticationManager 认证方法 authenticate(UsernamePasswordAuthenticationToken) 2.ProviderManager ...
- jdk从1.8降到jdk1.7失败
1.将JAVA_HOME:的路径更改为1.7的相关路径,例如我的:C:\Java\jdk1.7.0_80 2.此时查看版本:Java -version,如果是1.8的版本,就把path路径下的%JAV ...
- Docker中搭建FastDFS文件系统(多图)
关于FastDFS FastDFS 是以 C 语言开发的一项开源轻量级分布式文件系统,他对文件进行管理,主要功能有:文件存储,文件同步,文件访问(文件上传/下载)等,特别适合以文件为载体的在线服务,如 ...
- Boost随机库的简单使用:Boost.Random(STL通用)
文章目录 文章目录 文章内容介绍 Boost随机库的简单使用 生成一个随机的整数 生成一个区间的平均概率随机数 按概率生成一个区间的随机整数 一些经典的分布 与STL的对比 Ref 文章内容介绍 Bo ...
- day7(vue发送短信)
1.vue发送短信逻辑 前端函数如下,js方法代码无需更改,前端代码逻辑在components\common\lab_header.vue 只需要修改components\axios_api\http ...
- 第6.3节 Python动态执行之动态编译的compile函数
Python支持动态代码主要三个函数,分别是compile.eval和exec.本节介绍compile函数的语法和相关使用.compile函数用来编译一段字符串的源码,将其编译为字节码或者AST(抽像 ...
- PyQt(Python+Qt)学习随笔:toolButton的autoRaise和arrowType属性
autoRaise属性 autoRaise属性表示toolButton按钮是否自动凸出,类型为布尔类型.默认值为False,可以通过autoRaise().setAutoRaise(bool enab ...
- PyQt(Python+Qt)学习随笔:快速理解Qt 中Action是什么
一.引言 Qt中Action这个词接触很久了,一直以来没去学习,今天终于准备学习了,查了些资料,初步总结为: Action为界面操作的抽象,应用程序可以通过菜单,工具栏按钮以及键盘快捷键来调用通用的命 ...
- Linux使用inode(i节点号)删除文件
今天学习Linux的时候遇到的知识点,想起了以前一次线下AWD攻防赛的时候的不死马,记录一下 在Linux里面,有的时候我们会遇到奇奇怪怪的文件名,以至于我们删除不了,比如说我们创建了一个叫做&quo ...