SQL注入点分析

SQL注入点分析

1:常见的注入点

从程序编写的角度看SQL注入,SQL注入漏洞产生的本质原因是将获取到的用户可控数据在没有经过安全处理的情况下拼接到SQL语句中并发送给数据库服务器执行导致的。因此,任何服务器能取到的用户输入,都是可能存在SQL注入的注入点,对于手工测试而言,通常根据业务找寻可能与数据库有交互的输入作为潜在的注入点进行测试:

常见注入点:

  • 表单提交,主要是POST,或者GET请求。
  • URL参数,主要为GET请求参数。
  • Cookie中的参数。
  • HTTP请求头部可修改的值,比如: RefererUser_Agent等。

2:注入点测试的基本思路

​ SQL注入点的测试本质上是基于原理的模糊测试,我们需要根据一个注入点的功能,推测其可能使用的SQL操作、用户输入的数据类型(数字型或字符型)以及用户输入拼接到SQL语句的位置,比如说登陆功能的话,它有可能执行的SQL语句就是select。然后尝试构造基础的报错注入语句、布尔盲注或时间盲注语句来验证相关位置是否存在sql注入漏洞。
​ 注意,在未知源码的情况下,我们只能尽可能尝试构造各类测试语句来对注入点进行测试,如果测试现象符合条件可以认为存在SQL注入漏洞,但测试现象不符合预期并不能100%确定SQL注入漏洞不存在。

1)数字型与字符型的判别

一:数字型

1、参数后加单引号,报错注入

http://127.0.0.1/2/sql1.php?id=1'
SELECT first_name, last_name FROM users WHERE user_id = 1';

2、参数后加" and 1=1”,访问正常: 布尔型盲注

http://127.0.0.1/2/sql1.php?id=1 and 1=1
SELECT first_name, last_name FROM users WHEREuser_id = 1 and 1=1;

3、参数后加" and 1=2”,访问异常(如:无信息)

http://127.0.0.1/2/sql1.php?id=
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL注入攻击是指攻击者通过向应用程序的输入参数注入恶意的SQL代码,从而使应用程序执行非预期的SQL查询或命令。攻击者可通过这种方式获取敏感信息、篡改数据甚至控制整个数据库系统。下面是一个简单的SQL注入攻击报文分析: 假设一个应用程序提供了用户登录功能,用户在登录时需要输入用户名和密码。该应用程序使用以下SQL语句验证用户是否存在: ``` SELECT * FROM users WHERE username = '$username' AND password = '$password' ``` 其中 $username 和 $password 是用户输入的变量,应用程序会将这些变量拼接到SQL语句中。攻击者可以利用这个漏洞进行SQL注入攻击,例如,攻击者可能输入以下内容: ``` Username: admin'-- Password: 123456 ``` 攻击者在用户名输入框中输入了 "admin'--",这会导致SQL查询变成以下形式: ``` SELECT * FROM users WHERE username = 'admin'--' AND password = '123456' ``` 在SQL语句中,"--" 表示注释,它后面的所有内容都将被忽略。因此,攻击者成功绕过了密码验证,登录到了系统中。通过这种方式,攻击者可以执行任意的SQL命令,例如: ``` Username: admin'; DROP TABLE users;-- Password: 123456 ``` 在这种情况下,攻击者在用户名输入框中输入了 "admin'; DROP TABLE users;--",这会导致SQL查询变成以下形式: ``` SELECT * FROM users WHERE username = 'admin'; DROP TABLE users;--' AND password = '123456' ``` 这个查询会执行两个命令:首先,它会查询用户名和密码是否匹配;其次,它会删除 users 表。攻击者成功地删除了 users 表,破坏了整个数据库系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值