理论篇8:SQL注入(字符型注入和数字型注入)

目录

注释符的概念

判断MYSQL语句闭合方式:      

sql的注入可以分为数字型,字符型。

数字型

字符型

判断MYSQL注入闭合方式:

方法二:

删除单引号之前

删除单引号之后

原因:

原因:

Mysql中 int(3) 类型的含义


MYSQL语句一个很重要的概念:成对出现

注释符的概念

使用注释符,mysql注释符有#、-- -(或者--+-)、/**/三种

注释符#,-- -(--+-)都是把后面的语句全部注释掉了,而内联注释/**/则是注释指定部分,需要一前一后闭合。

被单引号' '包括的字符无实际意义

 注释符“-- -“将它后面的——' LIMIT 0,1全部注释掉了,而程序编译时,不对注释作任何处理,所以程序执行时只执行到SELECT * FROM users WHERE id='1',这里。

判断MYSQL语句闭合方式:      

       闭合的概念:MYSQL数据库的包容性较强,如果输入了错误的数据类型,MYSQL数据库会自动将其转换成正确的数据类型,

       如:输入   1)、1"、1-等,只要数字后面的字符不是闭合符的,数据库都会把你输入的错误数据类型转换成正确的数据类型
       但是,若输入的数字后面的字符恰好是闭合符,则会形成闭合,若闭合后形成的sql语句是错误的,那么sql语句执行就会错误,从而造成页面显示错误。

sql的注入可以分为数字型,字符型

简单分辨方法:

看\斜杠后面跟着的字符,是什么字符,它的闭合字符就是什么,若是没有,就为数字型。

数字型

测试步骤:

1、加单引号,URL:xxx.xxx.xxx/xxx.php?id=3'

对应的sql:select * from table where id=3' 这时sql语句出错,程序无法正常从数据库中查询出数据,就会抛出异常;

2、加and 1=1 ,URL:xxx.xxx.xxx/xxx.php?id=3 and 1=1;

对应的sql:select * from table where id=3' and 1=1 语句执行正常,与原始页面没有差异;

3、加and 1=2,URL:xxx.xxx.xxx/xxx.php?id=3 and 1=2;

对应的sql:select * from table where id=3 and 1=2 语句可以正常执行,但是无法查询出结果,所以返回数据与原始网页存在差异;

字符型</

### SQL 注入中的字符型数字型区别 #### 字符型 SQL 注入 字符型 SQL 注入通常发生在应用程序通过字符串参数构建 SQL 查询语句时。攻击者可以通过提交恶意的输入来操纵查询逻辑,从而执行未授权的操作。 例如,在登录表单中用户名字段可能被用于如下查询: ```sql SELECT * FROM users WHERE username='input_username' AND password='input_password'; ``` 如果 `input_username` 被设置为 `' OR '1'='1` ,则整个条件变为真,导致返回所有用户的记录[^1]。 为了防止这种类型的注入,应该始终对用户输入的数据进行严格的验证转义处理,并尽可能采用预编译语句或存储过程。 #### 数字型 SQL 注入 相比之下,数字型 SQL 注入涉及整数或其他数值数据类型的参数。当这些值未经适当过滤就被直接嵌入到动态生成的SQL命令里时就可能发生漏洞利用情况。 考虑一个简单的商品详情页面 URL 参数传递产品 ID 的场景: ```sql SELECT name, price FROM products WHERE id=product_id; ``` 假设 `product_id` 是由前端传来的 GET 请求的一部分,则可以尝试构造像 `-99 UNION SELECT credit_card_number, cvv FROM customers LIMIT 1--` 这样的有效负载来进行联合查询攻击[^2]。 同样重要的是要确保任何来自外部源接收过来的数字都经过充分的安全措施保护;理想情况下应使用 ORM 或数据库抽象层所提供的安全机制。 --- 对于两种不同形式的防护建议相同:永远不要信任客户端提供的信息,而是要在服务端实施全面而有效的输入校验策略以及采取必要的编码实践以减少潜在风险。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值