Wker_SQLTool注入工具
0X01 前言
由于很早之前我的Python就已经在3.7版本了,导致处在2.7版本的sqlmap无法使用(具体如何让其在3.0以上版本运行,我就没有去深究,每次要用都要打开kali很麻烦),所以我用的一直是穿山甲这款SQL注入工具,我用的是3.3版本,里面爆出的漏洞太多,首先是MSSQL的切换数据库查询就不可以查询到, hostname也无法查询,切换数据库的bug我不知道他是出在哪里,但hostname变量的bug我抓包看了一下是由于他在hostname这个变量下前面添加了and这个单词导致查询出错。

还有一些其他的小bug,可能在他之后出的4.0版本修复了。并且我下载的都是报毒的,我一直是用虚拟机运行很是麻烦,所以我就自己写了一款SQL注入的工具(之前也是写过的,但是不是很好用,这次写的稍微顺手了一些)。
0X02 工具介绍
这款工具我是用易语言写的,由于界面友好会减少背命令的烦恼,SQL注入工具项目也不是很大,所以就不准备用其他的一些语言了(在文章底部,我会将易语言的源码发上来),工具的编写用了两天左右的时间。目前支持的数据库和对应的注入类型:
ACCESS数据库:显错盲注;联合注入;偏移注入
MySQL数据库:显错盲注;联合注入;报错注入;时间盲注
MSSQL数据库:显错盲注;联合注入
参数提交方法:
GET;POST;COOKIE
在这里,我给大家提供了时间盲注的一个注入方法,并且我更改了算法,将需要依赖上一次查询结果的二分法方式改变为逐位猜解法(这里会在下文讲解到相关的知识),ACCESS的偏移注入(具体的知识这里不进行讲解,简单介绍就是不需要猜解到字段同样获得数据)
0X03 ACCESS数据库注入
ACCESS数据库注入,之前也有一些相关的工具,例如啊D,名小子这类国产的工具,但是由于年代久远,并且好像是只支持显错盲注,这个效率就属实太低了,所以我在工具这里就添加了联合注入,也就是手工注入常用的union联合注入,下面我做一下工具的使用。
首先运行工具,界面我做的比较的粗糙,有兴趣的可以自己去修改一下,打开工具你会听到清晰的键盘敲击声,嘻嘻是我加的一个小特效,点击右面的 ,就可以进入程序的主界面。

这里的话呢,支持自定义的协议头,和更改提交参数的方法。
我们先拿GET注入方式说起,我们输入网站,然后点击Analyze进行分析。
得到如下的结果:

这里我暂时先不讲解前后缀的含义,在下面的MySQL注入中进行分析,可以看到检测出是ACCSEE数据库,并且支持显错盲注,但是union联合注入是未知,因为这个需要知道一个表段才可以进行检测,这个时候我们进行获取表的操作。

可以看到,检测出两个表段,并且黄色的字告诉我们,支持union联合注入,这样数据获取会速度很快,我们先一放,我们来看下偏移注入,这个时候我唔没有获取字段,我们勾选上要偏移注入的表段,点击偏移注入(要先选择union联合注入才可以哦),会有如下结果:

看到在中间的框中出来了一些数据,super,admin,bfpms这些其实就是这个表中的一些数据,偏移注入其实也是看一定的人品的,这次人品比较好,就注入出来了一些表中数据,我给大家看下mdb表中的数据

显然出来了一些数据,但是只是部分,这个也是看人品的。
接下来我们来获取列,勾选上要查询的表段

可以看出结果,我们检测出了四个字段,实际上到底有多少列数我们也可以检测出来,这也是工具的一个特色,但是这里错了一个user,可能是数据包出错了,这个时候,我们检测数据的时候可以选择两种注入方式,可以使用union联合注入和显错盲注,但由于union联合注入速度快,数据包发送的少,我们都来用一下。
Union联合注入:

速度很快,接下来我们看下显错盲注

可以看到显错盲注,是通过先猜解数据的长度,然后在猜解数据的ASCII码,这里的猜解是通过二分法猜解。
接下来看一下cookie注入的实例,首先我们先GET注入一下,发现

说明GET存在一个检测,我们就尝试用一下cookie,将id这个参数用cookie的方式提交上去,发现确实可以返回正常的页面,那么我们就尝试一下cookie注入,发现确实可以,操作也是很简单的。

然后常规操作方法,就可以得到数据和穿山甲的结果是一致的。

ACCESS的使用的就简单介绍到这里了,之后我也会田间ACCESS的时间盲注,但在这个版本暂时没有添加。
0X04 MySQL数据库注入
这个注入比较经典,注入的方法也比较多,篇幅比较长。
漏洞的检测方法上述已经解释到了,这里就不解释了,我们进入漏洞利用界面后可以看到(报错注入我们放到后面说)

这里我将PHP的源码发上来,大家看一下

<?php $a = $_GET['x']; $b = mysql_connect("127.0.0.1",'root','root'); mysql_select_db('fanke',$b); $sql = "select * from user where id=$a"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)){ echo "ID:".$row['id']."
"; echo "Ming:".$row['username']."
"; echo "mima:".$row['password']."
"; } mysql_close($b); echo "


"; echo "grammer:"; //echo $sql; ?>

分析一下,很简单,也没有需要闭合的,就是最基本的一个注入,但是大家记住了,后面注释的那个sql语句不要取消注释,否则注入工具会注入失败,具体原因我就不取讲解了,因为返回的页面机器不会像人一样只能的判断,反正目前是这样的。
我们看到这里支持显错盲注;union联合注入;时间盲注,但是不支持报错注入。
我们来简单的操作一下,获取一下相关的变量,这里我就不演示通过显错盲注进行注入了,因为速度慢,我们就通过联合注入进行注入。会得到如下的结果

如果我们用盲注(包括时间盲注),会一个字符一个字符的输出,例如如下效果:

我们来写入文件试一下:例如写入一句话在d:\6.php

我们可以发现多了几个0,不影响我们的木马正常运行(原因是select 输出5个字段的位置,我们只填充了第一个字段位值的时候后面字段内容我给你们用0填充了,所以会这样, 但是不影响PHP的运行的,只会当作不规范的html显示出来罢了)
我们来注入一下数据库,点击数据库读取就可以更换页面了。
我们来用union联合注入获取数据库和表段字段

这个速度是很快的,但是我们要是用盲注,速度就很慢了,我给大家康一下。

同样先猜解长度,在猜解ASCII码,但我其实本地速度也是很快的,10s就把21个跑出来了,中间经过的路由很少。
我们同样也读取一下数据看看

联合很快,盲注就会慢一些,不演示了,我们来说一下,报错注入。
print_r(mysql_error());
这一个可以输出错误语句,我们用http://127.0.0.1/sqli-labs-master/Less-5/index.php?id=1这个来进行报错测试!这个靶场网上有下载的。我们注入一下

我们看到需要闭合,看一下程序的说法

看到这次前缀和后缀有值了,很简单前缀是’后缀是–+
前缀是比和前面的单引号,后缀是进行注释,我给大家带了许多常用的,大家放i性能就好了。
看一下我们支持的注入类型并且尝试注入一下。

发现支持报错注入,其他的操作和联合注入一样,但是速度会比联合注入慢上一些。这里就就不操作了,但是暂时不支持这种注入的读写文件。
接下来我来讲解一下这个时间注入的一些相关操作。
由于有的时候,页面会将sql语句的结果并不会返回回来,但是他确确实实被执行了,我们看不到反悔怎么办,我们就用这样的一条语句:If(ascii(substr(database(),1,1))=114,1,sleep(5))
类似于上面的我们可以通过返回是否为真进行判断是否查询的结果正确,但是,由于二分法注入是基于上一次查询的结果进行查询的,速度极慢,意思就是说我们要先猜解大于或小于64再猜解32和96,导致我们只能开一条线程访问网页八次,而我们用二进制的逐位猜解法我们就可以开八个线程进行访问,就算是虚假的线程,但对于网络IO操作也是足够了的。
我们看一下程序具体的执行方法:

我们可以看到猜解完毕长度之后,我们就用猜解位的ASCII码的二进制数进行查询,具体的算法我就不在这里详细讲述,可以去百度一下,那我为啥不开(长度*8)个线程呢,经过我多次的测试,发现错误概率太高了,所以八个线程是最好的。也就是十进制数转换为8个二进制位可以表示0-256之间的十进制数,ASCII码也可以取出来了(ASCII码在内存中只占用一个字节),但要是高于256的我们会丢失造成错误,但是基本上都是英文,牵扯不到别的,要是别的的话呢,可以用另一种注入,这里不介绍了。
时间盲注所占用的时间过长,大家量力而行,其他的操作方法和我们的显错盲注一样,这里通过一个POST注入进行演示一下
下面贴出POST.php的测试代码。

name

pass

<?php $a = $_POST["n"]; $c = $_POST["p"]; $b = mysql_connect("127.0.0.1",'root','root'); mysql_select_db('fanke',$b); $sql = "select * from user where username='$a' and password='$c'"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)){ echo "success
"; echo "ID:".$row['id']."
"; echo "Ming:".$row['username']."
"; echo "mima:".$row['password']."
"; } mysql_close($b); echo "


"; echo "grammer:"; //echo $sql; ?> 在这里我们不讨论万能密码的方面,数据库中有fanke,fanke这两个数据,通过for表单可以看出我们通过n和p提交数据给POST.php,我们放入工具会得到如下结果: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191030222408722.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4MzkwNTYx,size_16,color_FFFFFF,t_70) 同样我们是字符串的注入也是需要闭合一个单引号然后后面注释,我们时间盲注一下version吧。你可以深刻感受到速度的慢,看到下方的提示,我们在猜解每一个位的二进制数,八个线程完成后猜解下一个字符的二进制数,来看下结果: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191030222423595.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4MzkwNTYx,size_16,color_FFFFFF,t_70) 如果想要自行测试的话呢,千万要记住一点,编码!!!因为在MySQL中位与的符号是&,但是在PHP中这个符号又是参数连接符,编码就可以解决这个问题了。 0X05 MSSQL数据库注入 MSSQL的注入,这里我们也是比较简单的,支持union联合注入和显错盲注。我们先来看一下回显的注入,一般来说支持回显也就支持盲注。 我这里没搭建靶场,网上找了几个实例网站(我只是测试学习,我会打码的),靶场不好用的原因是我的MSSQL不知道为啥服务启动不起来了,之前一直好好的,好久没用之后就不好用了,对MSSQL很了解的朋友要是有时间帮我解决一下,这里小弟就感谢了,题外话,我们来注入一下试试。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191030222435736.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4MzkwNTYx,size_16,color_FFFFFF,t_70) 我们可以看到支持回显注入,我们就来操作一下,用起来也比较傻瓜。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191030222449940.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4MzkwNTYx,size_16,color_FFFFFF,t_70) 操作起来很简单,速度也肯定是很赞的,嘻嘻。我们来看下盲注,这里我diss一下穿山甲,对这个注入,他又好多bug,我们先找一个盲注的MSSQL注入的网站。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191030222505935.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4MzkwNTYx,size_16,color_FFFFFF,t_70) 他告诉我是ACCESS,我差点就把这个靶场扔了,但是后来我自己测试了一下,发现是MSSQL的数据库,为了验证我也用SQLMAP测试了一下,果然是MSSQL数据库,我们用我们的工具注入一下。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191030222519299.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4MzkwNTYx,size_16,color_FFFFFF,t_70) 和sqlmap的结果是相同的,并且我也修复了穿山甲的hostname的那个bug ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191030222529922.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4MzkwNTYx,size_16,color_FFFFFF,t_70) 这里需要注意,我在查询字段的时候,我需要检测表段的ID,所以速度会稍微慢一些。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191030222538150.jpg) 0X06 使用注意事项 在输入网址的时候我们需要把协议跟上,这个不能忘!!! 0X07 总结 也没啥说的,就是工具我两天写的,可能存在一些bug,希望大家能指出来,也可以自己修改源代码,由于我的源代码发出去了,所以大家一定要从我这里下载的是没有其他后门的程序!!!要是有什么需要的可以给我指出来,我的QQ:3311736869 0X08 下载地址 链接:https://pan.baidu.com/s/1PHnjYqRm-Yz9WmzG3yjhUQ 提取码:u99s

Wker_SQLTool注入工具(附源码)相关推荐

  1. JS sojson.vX在线解密工具-附源码

    前言 此文仅用于技术科普,教育与研究用途,请勿用于商业甚至非法用途,否则一切后果自负.若用户利用此文章而受到惩处,本人及本平台对其行为概不负责,亦不承担任何连带责任. 在线工具 Sojson.v4ht ...

  2. 遥望星空FTP文件同步工具(附源码)1.0 发布

    FTP文件同步工具1.0 发布 主要功能: 1.支持多任务多线程 2.支持自动启动 3.支持2种时间触发方式 4.支持任务进度显示 5.支持WinFtp Server.ftpserver.exe.Se ...

  3. Python实战案例,PyQt5模块,实现疫情信息快速查看工具(附源码)

    前言 今天给大家介绍的是Python疫情信息快速查看工具,在这里给需要的小伙伴们代码,并且给出一点小心得. PyQt概述 PyQt5是Qt框架的Python语言实现,由Riverbank Comput ...

  4. 快捷键自动截屏保存图片工具附源码0积分共享

    快捷键自动截图保存在工具所在目录,目前快捷键复用的原来的截屏软件,不影响原来截屏键功能.源码公开可免费下载需要者自取,可以根据需要自行修改.用对话框实现的,但是做成了系统托盘图标,没有界面显示,方便后 ...

  5. C#版Windows服务安装卸载小工具-附源码

    前言 在我们的工作中,经常遇到Windows服务的安装和卸载,在之前公司也普写过一个WinForm程序选择安装路径,这次再来个小巧灵活的控制台程序,不用再选择,只需放到需要安装服务的目录中运行就可以实 ...

  6. 【原创】SQlServer数据库生成简单的说明文档小工具(附源码)

    这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...

  7. 晓晨高效IP提取工具 附源码

    在网上找的几个代理ip网站,抓取下来的.解析网页用的是HtmlAgilityPack,没有用正则.自己重写了ListView使他动态加载的时候不闪烁. 效果图 下载地址:http://files.cn ...

  8. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码]...

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码] 文件上传这东西说到底有时候很痛,原来的asp.net服务器 ...

  9. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(10)-系统菜单栏[附源码]

    构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(10)-系统菜单栏[附源码] 原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后 ...

  10. 曝肝三天,两千行Python代码,制作B站视频下载工具(附源码)

    曝肝三天,两千行Python代码,制作B站视频下载工具(附源码) 文章目录 一.准备工作 二.预览 1.启动 2.解析 3.下载中 4.下载完成 5.结果 三.设计流程 1.bilibili_vide ...

最新文章

  1. canny边缘检测 关于2个阈值参数
  2. 女士做软件测试的利弊有哪些?
  3. 参加LinuxCon Japan 2012
  4. linux c 判断文件打开文件,Linux 用C语言判断文件和文件夹
  5. 测试类异常Manual close is not allowed over a Spring managed SqlSession
  6. MATLAB 最大对角矩阵
  7. systemverilog 起步
  8. c++获取当前时间戳_python开发:python时间模块的使用
  9. 十大你不一定知道的牛逼技术问答社区
  10. 对包含HttpContext.Current.Cache的代码进行单元测试
  11. 【工赋开发者社区】产业互联网和工业互联网的区别
  12. 利用计算机视觉看懂病历,广东省中山市2019年九年级下册中考语文第二次模拟测试语文试题卷(二模含答案和解析).doc...
  13. 小米无线路由器服务器用户名和密码忘了,小米无线路由器忘记了后台登录密码怎么办?忘记了小米路由器web页面的管理密码怎么找回?- 家用路由网...
  14. JMS Message消息头、消息体、消息属性
  15. 打开小米5开发者选项
  16. 嵌入式软件学习问题汇总(一)什么是嵌入式?
  17. 巴西龟饲养日志-----饲料的选择
  18. 怎么理解数据湖?(深度长文)
  19. 数据结构与算法 试题与答案
  20. 利用3D-DNA流程组装基因组

热门文章

  1. java解压jar包的方法_Java 打包成jar包 和 解压jar包
  2. 51单片机小车(附源码)
  3. Vue网页录音,js录音mp3
  4. PDF能编辑吗,怎么添加PDF水印
  5. Ajax的三种写法(最原始的写法+最常用的写法+最简便的写法)
  6. linux系统工具栏调整,如何调整任务栏大小
  7. Max Core Frequency 异常显示为-1.80GHz -- Intel-Extreme-Tuning-Utility-Intel-XTU (英特尔 XTU)
  8. SMOTE算法及其Python实现
  9. 【C语言】状态机编程
  10. HTML颜色码对照表-英文代码、中文描述、十六进制、rgb值