作者:zero
本文为SQL基本注入的进阶文章,如有任何疑问请查看: SQL基本注入演示:https://www.cnblogs.com/anbus/p/10082452.html 导语:利用SQL注入进行攻击来获取WebShell其实就是在向服务器写文件。(注意:这里我们需要得到网站的绝对路径)如何理解?引入余弦老哥的一句话: 黑客通过输入提交“特殊数据”,特殊数据在数据流的每个层处理,如果某个层没处理好,在输出的时候,就会出现相应层的安全问题。 也就是“输入输出”,余弦老哥举的这个例子就很精彩!
为什么要进行SQL注入WebShell?在所有常用的关系数据库管理系统(RDBMS)中均包含内置的向服务器文件系统写文件的功能,通过这些内置的功能,我们可以将自己的WEBshell写目录或文件进去。 什么是web shell?Web shell 我们可以把他拆开来看,web就是指在web服务器上,shell指的是用脚本语言编写的程序,那么,web shell就是用来管理服务器的一个工具,拥有对服务器进行操作的权限,又被称作web admin。Web shell一般是被网站管理员用于网站管理、服务器管理等等一些用途,但是由于web shell的功能比较强大,可以上传下载文件,查看数据库,甚至可以调用一些服务器上系统的相关命令(比如创建用户,修改删除文件之类的),所以经常会被黑客加以利用,通过一些上传缺陷,将自己编写的web shell上传到web服务器的页面的目录下,然后通过页面访问的形式进行渗透,或者通过插入 “一句话” 来进行渗透。 Web shell 种类:Web shell根据脚本可以分为多种,例如:PHP脚本木马,ASP脚本木马,也有基于.NET的脚本木马和JSP脚本木马。在国外,还有用python脚本语言写的动态网页,当然也有与之相关的web shell,根据功能来区分可以分为大马和小马,小马通常就指的是一句话木马,那下面我们就来说说一句话木马。 什么是一句话木马?一句话木马顾名思义就是只有一行代码的木马,短短的一行的代码就可以做到与大马相当的功能,为了绕过检测机制的检测,一句话木马出现过无数种变形,但是核心功能还是不变的,就是木马函数执行我们发送的信息。说到发送,正常我们发送的途径有三种:分别是 get , post , cookie。可以用这三种方式向一个网站提交数据。 一句话木马用 $_GET[' '] , $_POST[' '] ,$_COOKIE[' '] 来接受我们发送的数据,并把接收到的数据传递给一句话木马中执行命令的函数,进而执行命令。所以我们看到很多一句话木马大多数都有两个部分,一个用来接受命令,一个用来执行命令。 举个例子:这就是一个经典的一个一句话木马,其中 post 就是使用 post 的方式来接受命令,而 eval 就是执行命令的函数,eval 在 PHP 中的意思是将收到的数据转化成 PHP 代码来执行,这样我们就能够让插了一句话木马的网站执行我们传递过去的任意php语句,是不是觉得一下豁然开朗? 演示一下一句话木马的使用:新建立一个叫做muma.php的php文件,将它放入到www目录中 因为是post方法,所以我们用hankbar来提交数据 我们提交一个叫 phpinfo 的命令,phpinfo 的意思是展现当前php版本信息,然后提交一下 成功执行! 但是不只是 eval 这一个函数可以实现这个功能,还有很多函数可以间接或者直接的实现,而你要做的,便是想方设法进行变异来绕过某些检测机制,这些思路网上有很多,这里就不在赘述了。 常用工具:中国蚁剑的使用不一定得是这个工具,笔者只是将用这个工具来做个科普。 中国蚁剑,一剑在手,纵横无忧!其他的多余的话咱们就不说,来做个演示: 利用蚁剑链接一句话木马 还是写入一个一句话木马,密码值是value 将其中写入到www目录里面 添加数据 然后添加数据,成功! 点击文件管理,就可以成功进入到目标服务器了。 利用SQL注入漏洞获取webshell:从前文我们可以看出,一切一切的难度在于如何上传小马,而我们一般都是利用上传漏洞来进行上传各种大马小马,本次我们利用SQL注入来进行上传操作,以达到写入webshell的这一个操作。 select ...into outfile介绍:正常的使用规则就是select A into outfile B,意思就是选择a的数据导入到b,常和union连用。但是有两种写法,一种是利用union的,一种是不用的。 如果要利用需要满足多种条件:
挖洞这门艺术是运气与实力的充分展现,在get shell的过程中限制会有很多,尤其是绝对路径,有点时候有可能报错或者是直接默认路径直接就可以出来绝对路径,有的时候得通过扫后台敏感信息啊,sqlmap扫目录啊,等等多种手段才能出来,这可能也就是挖洞的魅力所在吧。
思路引导:首先我们理顺一下思路,前提是我们已经发现这个漏洞了,是select语句类型的SQL漏洞,并且已经注入成功了,我们对这个漏洞进行进一步利用,通过测试我们发现我们拥有写入权限,并且也没有规定路径,能使用单引号,我们也知道了后台服务器的绝对路径,于是决定写入小马对漏洞进行进一步的利用。 对于构造语句,我们使用select into out file 和union进行联合使用,具体语句如下:
其中,前面的我想应该就不用讲了吧,不明白可以回顾一下前面的文章,重点在于:
这个十六进制码这个翻译过来就是: 带引号的一个小马,欸这里有人可能要问了,小马就算了,为什么还要带引号?SQL语句因为是解释型语言,这条语句进入后台后,首先后台会解码,把十六进制转换成字符,然后再执行,而带引号的小马会被当成字符串传递到muma.php的php文件中,这时在muma.php里面就是已经变成字符串的一句话木马,但是如果不加引号,传递到muma.php 的就是未被转换的十六进制,这就是为什么要加引号的原因。 注入语句! 打开www目录,我们发现已经注入进去了 现在我们用蚁剑来进行连接 成功链接! 常见防御姿势:
本文到此结束! 来源:http://www./content-2-156651.html |
|