SQL注入之提交方法和数据类型
参数类型:数字,字符,搜索,JSON等
字符:字符型数据在sql语句中会自带‘ ’如果不考虑符号直接注入会失败 例如?name=‘x and 1=1’
搜索:sql语句中的搜索默认符是% ,select * from user where name like '%wang% ‘;,所以需要过滤 ‘%
也有可能用 ( ),{ , "等干扰
JSON的格式{
‘username’:‘www’,
‘password’:‘ss’,
}
请求方法:GET,REQUEST,POST,COOKIE,HTTP头等,可以通过更换请求方式来注入,绕过WAF等防御措施,在burp中修改http头信息时,空格不需要用+来代替。
不同的请求方式,请求的数据类型和大小不一样
GET方法特性:只要在url后面有?x=1就能接收到
而POST必须在请求头后空一行再传递数据,一般登录功能都是用POST注入
request是什么方式提交数据都接受,所以如果cookie等未过滤参数的话,可以通过cookie,HTTP头注入。
&_SERVER[’’],可以获取当前使用者的一些信息,例如获取请求包中的浏览器语言,请求者IP等,所以只要涉及到接收数据,有效查询的地方就可以进行SQL注入。
cookie注入原理: 在php中,超全局变量变量$_REQUEST[]可以通过 GET ,POST ,COOKIE方式进行传参。而COOKIE方式的优先级高于GET,POST,在忽略对COOKIE传参方式防御的情况下,可以通过COOKIE传参进行攻击。