C9第七周

任务目标
设无法接触到后端数据库,如何通过前端验证的方法判断注入点是数字型注入还是字符型注入?

练习测试环境

系统:centOS 7

搭建工具:docker

靶场名称:DVWA

概念理解

首先先理解SQL注入中这两种注入类型区别

数字型注入
  • 定义:参数在 SQL 语句中直接作为数字使用,无需引号包裹。
    示例
    -- 原始SQL(数字型)
    SELECT * FROM users WHERE id = 123;
    
    • 注入点id 参数直接替换数字值,如 id=123 → id=123 OR 1=1
字符型注入

定义:参数在 SQL 语句中作为字符串使用,需用引号包裹。
示例

-- 原始SQL(字符型)
SELECT * FROM users WHERE username = 'admin';

开始测试

1.对于dvwa靶场注入点也是满足以上判断方法(数字型/字符型)

功能是输入id号查询姓名,由此直接判断此为数字型

2.进一步测试判断

输入1 and 1=1回显正常

输入1 and 1=2回显居然还正常???

说明dvwa对此进行了处理,继续测试

3.加上 ' 测试

报错了,提示sql语法错误,由此猜测DVWA,在输入内容两边加上了单引号

猜测原语句:SELECT First_name,Surname from XXX where id='1'

现在:SELECT First_name,Surname from XXX where id='1'’

后一个 ‘ 被闭合,语法错误

4.输入1' and 1=1#     尝试用 # 注释掉多余的 '  发现回显正常

输入1' and 1=2#

回显为空,异常,说明就是如猜测的一般,在输入参数两边加上了 ' ' 

结论

1.此注入点为数字型(因为接收参数为数字)

2.常规数字型测试不行,是因为dvwa靶场做了特殊处理,在接收参数两边加上了 ' '

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值