渗透测试之本地文件包含(LFI)
一、本地文件包含
本地文件包含漏洞指的是包含本地的php文件,而通过PHP文件包含漏洞入侵网站,可以浏览同服务器所有文件,并获得webshell。
文章图片
看见?page=标志性注入点,提示我们输入?=page=index.php
文章图片
通过报错,我们可以知道当前文件包含的目录路径是/var/www/dvwa/vulnerabilities/fi/
我们可以通过../../../../../etc/passwd 试一下能不能显示默认用户账户密码
文章图片
发现可以访问。所以存在本地文件包含漏洞(LFI),你可以通过这种方法访问一些密码、敏感信息文件。
==============================================================================
如何利用LFI漏洞获得反弹shell,完全控制目标主机?
通过注入恶意代码到可读的文件中,然后浏览它使恶意代码被执行,比如
/proc/self/environ
/var/log/auth.log
/var/log/apache2/access.log
通常使用日志文件完成,因为本地文件通常会注册或写入日志文件。
==============================================================================
举个栗子:
打开burpsuite,开启代理。浏览器访问下面url抓取http包
http://192.168.164.129/dvwa/vulnerabilities/fi/?page=../../../../../proc/self/environ
文章图片
发现会执行代理,那我们把包修改为php代码后转发试试。
文章图片
修改完成,转发试试结果:
文章图片
可以发现php代码被执行了。所以我们就可以将payload换成webshell.php中的php代码从而获得webshell。
比如注入一句话木马
,然后通过蚁剑连接。 ======================================================================================== 获取反弹shell获得目标服务器的完全控制权。 方法一:
本次换个方式,从文件上传那篇知道passthru("")函数是PHP执行系统命令的,这里使用netcat执行监听端口命令
构造payload为
文章图片
【渗透测试之本地文件包含(LFI)】
然后在kali上开启监听。
文章图片
Forward改好的包结果如下:
文章图片
成功控制目标主机。
===============================================================================================
方法二:/var/log/auth.log
访问日志文件
文章图片
发现22端口是开启的,我们可以尝试用ssh登入看是否会被记录在日志文件中
文章图片
以random账户登入,随便输给密码。然后刷新浏览器页面找到random,发现已经记录到了日志文件。
文章图片
这说明,ssh后面的命令执行了,我们只要把命令替换成反弹shell的payload就ok了。
构造payload为
开启监听,同时ssh登入。
文章图片
这里命令需要进行base64编码,编码结果如下:
文章图片
文章图片
最后ssh回车车,刷新浏览器页面,执行注入命令反弹shell连接攻击主机。
文章图片
成功控制目标主机。
推荐阅读
- 使用Google|使用Google Cloud虚拟机做学习测试
- 官方教程(Go|官方教程:Go fuzzing模糊测试)
- 【职业规划】该如何选择职业方向(性能?自动化?测开?,学习选择python、java?)
- Anchor-free目标检测综述|Anchor-free目标检测综述 -- Keypoint-based篇
- COVID-19(利用Opencv|COVID-19:利用Opencv, Keras/Tensorflow和深度学习进行口罩检测)
- java测试代码_怎么写Java测试代码?
- 程序员|这款开源测试神器,圆了我玩游戏不用动手的梦想
- 人工智能|腾讯开源图像超分辨率算法RealSR的安装与测试
- Java基于虹软实现人脸识别、人脸比对、活性检测等
- 在线键盘按键检测工具