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脚本合起来

衣带渐宽终不悔,为伊消得人憔悴
浙公网安备 33010602011771号