天天看点

SQL注入学习笔记Sql注入

Sql注入

一、形成原因

开发者对SQL语言筛查不严,导致恶意的sql语句被执行,获得数据库信息。

二、分类:

1.(1)数字型注入:id=1 and 1=1;

(2)字符型注入:id=1’ and ‘1=1

2.(1)二次注入:先写入注入语句,再调用

(2)基于时间的注入:sleep,if等函数

(3)基于报错的注入:强行回显,floor

(4)基于布尔的注入:看页面的反应时间判断

(5)堆叠注入

(6)宽字节注入

(7)load_file,out_file,写入文件,获取文件

3.数据库分类:mysql,mssql,Oracle,mangodb,(mysal5.0以上版本自带information_schema,可直接利用。)

4.提交方式:get,post,cookie,

5.查询语句:inset,select,delete,update。

如果有时候没有回显可能是因为查询语句出问题。

三、Sql注入步骤:

信息收集

(1) 判断是否存在SQL注入

(2) 判断数据库类型,版本,用户等信息

注入

(3) Order by

(4) 暴库名(and 1=2 union select from )

(5) 暴表名

(6) 暴字段

(7) 暴信息

提权

四、绕waf:

大小写、嵌套 Aandnd、注释、改变提交方式,http参数污染、sqlmap 的tamper、编译

五、防御:

预编译,魔术引号,黑白名单,waf,权限限制,敏感词过滤,规定查询数据长度

继续阅读