SQL注入

 SQL注入原理

        SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据或者说是对数据的合法性判断不完全,致使非法数据侵入系统。

sql注入的通常思路

        找注点/判断是否存在注入漏洞

                首先要求闭合字符

                求列数

                求显示位

                爆库名、表名、列名、字段名

SQL注入类型

按注入点:有三类

        数字型注点(?id=数字)注入的值为数字。

        字符型注点(?name=‘字符/字符串’),当注入值为字符时要单引号进行闭合('')

        搜索型注点(通常会有keyword=/或者有表单提交数据)      

按数据提交方式:有四类

        get注入:注入点为传参的参数

        post注入:特征存在表单提交数据

        Cookie注入:注入点存在Cookie当中的某个字段中

        HTTP头部注入:注点一般会存在于请求头的字段里

按执行效果:有五类

        布尔盲注:通过布尔逻辑来判断条件的真假。

        时间盲注:利用时间延迟函数特性进行时间延迟判断条件是否成立。

        报错注入:通过页面回显的语句,来调整修改构造的sql语句。

        联合查询注入:union(可以拼接两个以上的select查询语句,但是查询列数要位数要一致)

        堆栈注入:多条语句同时执行。

**三种注释方式

#、--、/**/

常用函数:

user()用户名

datebase()数据库

current_user()可以查看权限

version()数据库版本

@@datadir()数据库路径

load_file()读取文件

into outfile()/into dumpfile 写入文件

字符串连接函数:

concat(str1,str2.....)

group_concat(str1,str2.....)

concat_ws(,sep/*分隔符*/,str1,str2.....)

information_schema结构:

数据库

information_schema.schemata 查所有数据库名

information_schema.schemata(schema_name)        数据库名

数据表

information_schema.tables        查所有表名

information_schema.tables(table_schema)        查该表的数据库名

information_schema.tables(table_name)        查表名

字段

information_schema.columns        所有字段名

information_schema.columns(table_schema)       查该字段的数据库名

information_schema.columns(table_name)        查该字段的表名

information_schema.columns(column_name)        查字段名

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值