sql注入数字型和字符型的原理 //(dvwa实战 sql injection low)

本文介绍了SQL注入的基本原理,包括数字型和字符型注入的测试步骤。通过示例展示了如何判断注入类型,以及手工注入的完整过程,包括字段数猜测、字段顺序确定、数据库和表的获取。同时,提出了防止SQL注入的预防措施。
摘要由CSDN通过智能技术生成

1、数字型注入

当输入的参数为整形时,如果存在注入漏洞,可以认为是数字型注入。

测试步骤:

(1) 加单引号,URL:www.text.com/text.php?id=3’

对应的sql:select * from table where id=3’ 这时sql语句出错,不符合sql语法,让数据库系统报错,如果没报错就说明 ‘ 被过滤了,这样不存在注入的可能或者是字符型注入。

(2) 加and 1=1 ,URL:www.text.com/text.php?id=3 and 1=1

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

(3) 加and 1=2,URL:www.text.com/text.php?id=3 and 1=2

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

and 1=1 是正确语句 可以返回正确页面 ,而and 1=2 为错误语句 不少网站设计时利用参数过滤了 而没过滤的 直接把值赋给变量 就形成了注入漏洞

如果满足以上三点,则可以判断该URL存在数字型注入。

 

2、字符型注入

如果在以上第(3)步,发现语句正常执行,且原始网页没有变化。那么可以排除是数字型的注入。当然也不能确定是字符型注入。

(1)若 输入:1' and '1'='1 成功:

(2)输入:1' and '1'='2,失败,没有查出东西,说明是字符型的注入:

 

3、手工注入思路


自动化的注入神器sqlmap固然好用,但还是要掌握一些手工注入的思路,下面简要介绍手工注入(非盲注)的步骤。

1.判断是否存在注入,注入是字符型还是数字型

2.猜解SQL查询语句中的字段数

3.确定显示的字段顺序

4.获取当前数据库

5.获取数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值