学习笔记-渗透测试-SQL注入_006_注入位置
1 不同请求方式的注入
1.1 GET请求方式的SQL注入
前面的所有案例均为GET请求方式进行的SQL注入,GET请求方式,是将数据直接拼接在URL中进行
burpsuite对页面进行抓包 可以发现,http使用的是get请求,同时在URL中也可以看得到参数的传递
通过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参数
1.2 POST请求方式的SQL注入
POST请求则是将数据放在HTTP body内进行传输
测试的时候,我们可以通过burp的Repeater进行,也可以通过浏览器插件hackbar v2
的Post data
进行(虽然该插件经常抽风)
使用sqlmap进行body内容的数据测试,需要将完整的数据包(不带payload),进行保存,然后使用sqlmap -r
参数读取
sqlmap -r "sqliabs11" -p uname --dbs
2 特殊位置的注入
sql注入的位置并非只出现在请求体中,而是出现在任何可能与数据库产生交互的地方
2.1 存在于cookie中的注入
靶场:sqliabs Less-20
账号密码 Dumb Dumb
在登录过程中,我们进行抓包,在将账号和密码POST上传后,系统会下发Set-cookie
在后续访问中,每一次访问都会带着cookie进行身份校验
简单插入语句进行测试,我们发现,Cookie进行了sql查询,并且能够被我们控制插入语句
对于特殊位置的SQL注入,我们将其保存成文档,将注入点后面添加*
进行标识,使用sqlmap -r
进行数据探测
2.2 存在于User-Agent 中的注入
靶场:sqliabs Less-18
账号密码 Dumb Dumb
与cookie类似,某些系统也会将UA记录进入数据库之中,在该案例中,也是需要登录系统才会将UA和客户端IP信息写入数据库,burp抓包在User-Agent中加入引号进行测试,发现浏览器存在报错,存在注入点
报错注入尝试获取版本号
or updatexml(0,concat(0x2b5e,version()),0),",")#
将数据包进行保存标注,放入burp进行数据获取
sqlmap -r "sqliabs18" --dbs
3 SQLmap注入分类
根据sqlmap语句构成,可以将注入语句进行分类
1.盲注/显注 + GET + 参数 sqlmap -u '$url' -p $参数
2.盲注/显注 + POST + 参数 sqlmap -r '$请求包文件地址' -p $参数
3.盲注/显注 + GET/POST + cookie/UA -r '$请求包文件地址(标注注入点)'
本文来自博客园,作者:kinghtxg,转载请注明原文链接:https://www.cnblogs.com/kinghtxg/articles/17158165.html