注入点出现位置、判断、编码、利用
注入点出现位置、判断、编码、利用
目录
一、四大注入点
1.1、简介:
我们遇到的不一定注入点是表单中username字段的情况,有时候注入点会隐藏在不同的地方
四个常见的注入点的位置:GET参数中、POST请求中、User-Agent中、Cookies中
1.2、分类:
(1)GET参数中的注入(URL):
GET中的注入点一般最容易发现,因为我们可以在地址栏获得URL和参数等,可以用Sqlmap或者手工验证是否存在注入。
(2)POST请求中的注入(抓包):
burp:POST中的注入点一般需要我们通过抓包操作来发现,好比使用Burp
插件:浏览器插件Hackbar来发送POST包。
Sqlmap或者手工验证。
(3)User-Agent中的注入(抓包):
burp:发现User-Agent中的注入,可以使用Burp的Repeater模块
Sqlmap:将Sqlmap的参数设置为level=3,这样Sqlmap会自动检测User-Agent中是否存在注入。
(4)Cookies中的注入(浏览器插件、抓包):
burp:寻找Cookies中的注入,可以使用Burp的Repeater模块。
Sqlmap:可以设置参数为level=2,这样Sqlmap就会自动检测Cookies中是否存在注入了。
插件:浏览器修改cookie的插件也可以安装使用
二、注入点判断:
1、字符型(使用单双引号、括号/可叠加)
2、数字型(输入具体数字,或输入1+1与3-1,看页面显示情况是否一致)
注:更加复制的方法,使用函数测试,如ASCII命令就是一个典型的示例, 它返回被提交字符a的数字化ASCII代码。例如, 因为A的ASCII值为65, 在SQL中, ASCII('A')=65
三、特殊编码
简述:
在探查应用程序是否存在SQL注入之类的缺陷时, 常常会犯一个错误, 即忘记某些字符在HTTP请求中具有特殊含义。如果你希望在攻击有效载荷中插入这些字符, 必须谨慎地对它们进行URL编码, 确保应用程序桉预料的方式解释它们
&和=
用于连接名/值对, 建立查询字符串和POST数据块。应当分别使用%26与%3d对它们进行编码
空格
查询宇符串中不允许使用空格, 如果在其中提交空格, 整个宇符串会立即终止。必需使用+或%20对其编码(如果使用+,必需使用%2b对其编码)
分号
分号用于分隔cookic字段, 必须使用%3b对其编码
四、注入点判断利用
1、判断是否存在注入点
(1)在参数位置修改参数值,eg:id=1修改为2后是否数据改变
(2)插入单、双引号的检测方法(常用),未闭合的单引号会引起SQL语句单引号未闭合的错误提示
2、判断注入点还是整形或字符型
(1)数字型:通过and 1=1
(2)字符串型:闭合单引号测试语句'and'1'='1进行判断
3、判断查询列数
order by 或 union select
4、判断显示位
报错回显,用不存在的id=-1加上union select……
或者and1=2加上union select……
下面的就都是通过报错后,在显示位构造要查找的信息
5、获取所有数据库名
6、获取数据库所有表名
7、获取字段名
8、获取字段中的数据
- 点赞
- 收藏
- 关注作者
评论(0)