15.文件包含漏洞利用
一.利用前提:
(1)存在一个文件包含漏洞点
(2)我们有其他可控点可以写入到本地文件
(3)写入的本地文件路径可知或可预测
二.包含web日志
前提通过信息搜集,得到了相关的服务器信息,比如得知中间件是apache。
apache记录web日志的文件有access.log和error.log
nginx:/usr/local/nginx/logs
这时候我们访问服务器的时候,通过burp修改我们的请求,将恶意代码写在请求内,这时候web日志就会将
我们的恶意代码写入到日志文件中。由于日志文件一般来说都有默认的路径,比较容易猜测,这样就满足了
我们本地包含getshell的条件。
比如get请求 get"<?php phpinfo(); ?>".html
三.包含登录日志
如果发现一个Linux系统,开放了22端口,同时存在文件包含漏洞。那么我们可以构造恶意登录在ssh登录
日志中写入恶意代码。
Linux默认登录日志路径:/var/log/auth.log或 /var/log/secure
使用xshell或ssh命令进行ssh登录:ssh"<?php phpinfo(); ? >"@192.168.112.188,此时,登录日志中将出
现php代码。
如果MySQL开放远程登录,我们也同样可以登录MySQL并包含MySQL日志:mysql -u"<?php phpinfo(); ?>
-p -h 192.168.19.130
在Linux上开启MySQL日志:
find / -name my.cni
vim /opt/lampp/etc/my.cnf
四.包含mysql日志
包含mysql一般是在成功访问到MySQL后实现的。攻击者进入MySQL,可以通过数据库查询接口,实现恶意代码的写入MySQL
日志。方法和原理与包含web日志相同。比如进入phpmyadmin后台,或者爆破成功进入MySQL。
查看日志文件状态:show variables like 'general_log'
写入恶意代码:select"<? phpinfo(); ?>",根据日志文件路径即可包含。虽然能够到这一步,已经是渗透测试成功。但是如果web
服务器的权限更高的话,可以让web服务器来包含日志,这样web shell就会被高权限账号执行,实现提权。
五.包含上传文件
1.图片和shell脚本合起来
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!