网络安全SQL初步注入2
六.报错注入
mysql函数
updatexml(1,xpath语法,0)
xpath语法常用concat拼接 例如: concat(0×7e,(查询语句),0×7e)
select table_name from information_schema.tables limit 0,1
七.宽字节注入(如果后台数据库的编码为GBK)
url编码:为了防止提交的数据和url中的一些有特殊意义的符号产生歧义,自动将一些符号转义
注入防御之引号转义和绕过思路
好多网站,尤其是php的网站,为了防止sql注入,经常会采用一个手段就是引号转义
使用一些转义函数,比如:addslashes和mysql_real_escape_string,他们转义的字符是单引号 (')、双引号(")、反斜线()与NUL(NULL 字符),转义的方式就是在这些符号前面自动加上\,让这些符号 的意义失效,或者可以理解为被注释掉了
考虑引号前加\且\被转义,
所以需要在5C前面凑成另一个字符编码 使得\注释无效
所以这样就可以注入
八.偏移量注入
偏移注入是一种注入姿势,可以根据一个较多字段的表对一个少字段的表进行偏移注入,一般是联合查询
假设我们已经知道了另一个表且他的列少于我们要注入地方的表的列(后边表列少于前边表) 可以利用联合注入 1 union select 1,表名.* from 表名
九.加密注入
==结尾的加密一般是base64加密
构造注入
十.堆叠注入(执行多条 SQL 语句,语句之间以分号(;)隔开)
一条语句跟着另一条语句,不同于联合查询,联合查询需要查询的数据一致(也就是列数相同),堆叠注入则不需要。
例如以下这个例子。用户输 入:1; DELETE FROM products服务器端生成的sql语句为: Select * from products where productid=1;DELETE FROM products当执行查询后,第一条显示查询信息,第二条则将整个表进行删除
十一.二次注入
脏数据是第一次注入的payload部分被转义,但保存在数据库中了,二次注入就是在注入脏数据后再次利用这些脏数据。
第一步:插入恶意数据 进行数据库插入数据时,对其中的特殊字符进行了转义处理,在写入数据库的时候又保留了原来的 数据。
第二步:引用恶意数据 开发者默认存入数据库的数据都是安全的,在进行查询时,直接从数据库中取出恶意数据,没有进 行进一步的检验的处理