mysql|sql注入的各种类型

一、mysql报错注入:
1、利用到的mysql函数
extractvalue()
语法:extractvalue(目标xml文档,xml路径)
原理:函数第二个参数 xml路径是可操作的地方,xml路径是用 /xxx/xxx/xxx/…这种格式,如果我们写入其他格式,就会报错,并且会返回我们写入的非法格式内容,而这个非法的内容就是我们想要查询的内容。
updatexml()
语法:updatexml(目标xml文档,xml路径,更新的内容)
原理:和上面一致,要是xml路径报错就会出现我们需要查询的内容
【mysql|sql注入的各种类型】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;
mysql|sql注入的各种类型
文章图片

sql语句执行后会报错,显示你要查询的内容
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
输入url,如下图
mysql|sql注入的各种类型
文章图片

点击cookie中转,之后会跳出一个新的url
mysql|sql注入的各种类型
文章图片

打开明小子或者sqlmap扫描这个url
mysql|sql注入的各种类型
文章图片

三、加密参数注入:
原理:网页设置时将注入的参数进行解密后返回给查询变量,意思就是在网页url里面显示的参数是加密过的,而且一般这种加密过的参数利用工具是寻找不了的,只有通过我们手动去注入。
mysql|sql注入的各种类型
文章图片

解决方法:先判断参数是以什么方式加密的,知道加密方式后,将sql注入代码加密后再进行注入
mysql|sql注入的各种类型
文章图片

四、请求方式注入:
请求方式注入:对网页的请求方式注入有很多种,例如是get注入、post注入、cookie注入、HTTP请求头注入。
1、get注入:
mysql|sql注入的各种类型
文章图片

2、post注入:
mysql|sql注入的各种类型
文章图片

3、cookie注入:
mysql|sql注入的各种类型
文章图片

4、HTTP请求头注入:
在一些网站他有设置 I D = ID= ID=_SERVER[‘HTTP_USER_AGENT’]这样的函数,就是接收请求头的信息,我们可以通过拦截工具将useragent信息修改成sql注入代码,然后实现注入
mysql|sql注入的各种类型
文章图片

五、宽字节注入:
1、涉及注入的php函数:addslashes()
功能:在每个双引号(")前添加反斜杠
mysql|sql注入的各种类型
文章图片

2、绕过方法
绕过字符:%df’
当我们使用%df’面对addslashes函数时会发现如下图效果
mysql|sql注入的各种类型
文章图片

配合联合注入,会更加了解到该符号的效果,输入的注入代码为:%df’ union select 1,user(),3#
mysql|sql注入的各种类型
文章图片

(简单来说就是%df就是把\吃掉然后变成了?,符号前面就没有\了,后面就可以随心所欲写注入代码了)

    推荐阅读