首页 > 编程知识 正文

如何实现sql注入,sql注入攻击特点

时间:2023-05-06 13:51:13 阅读:154841 作者:3716

另一方面,SQL注入(SQLi )是指注入攻击,可以执行恶意的SQL语句。 通过将任意SQL代码插入数据库查询,使攻击者能够完全控制 Web 应用程序后面的数据库服务器攻击者可以绕过网页或web APP应用的验证和授权,从而使用SQL注入漏洞绕过APP应用安全措施还可以使用SQL注入来添加、修改和删除数据库中的记录。

SQL注入漏洞可能会影响使用SQL数据库(如MySQL、Oracle或SQL Server )的网站和web APP应用程序。 犯罪分子可能利用它非法访问用户的敏感数据,包括客户信息、个人数据、商业秘密和知识产权。 SQL注入攻击是最古老、最流行、最危险的web APP漏洞之一。

二. SQL注入攻击的类型(一)带内注入

这是典型的攻击,攻击者可以通过同一通信路径发起攻击并获得结果。 这是通过两种带内技术完成的。

3http://www.Sina.com/: http://www.Sina.com /

错误的 SQL 注入:攻击者将UNION ALL 显示的错误消息中获取有关数据库的信息

这两种技术都是联合的 SQL 注入被盗信息的结果与合法结果连接起来。 如果APP应用程序开发人员或数据库开发人员无法正确参数化查询中使用的值,它将成功。 两者都是试行错误法,可以检测出错误。

依赖于攻击者修改应用程序发送的 SQL

也被称为浏览器中显示的错误和返回的信息。 HTTP响应的详细信息、某些用户输入的空白网页以及数据库响应某些用户的输入需要多长时间取决于攻击者的目标。 他们也可以指向攻击者尝试的其他SQL攻击路线。

(二)盲注入

此攻击有点复杂,如果攻击者无法通过一个直接查询-应答攻击实现目标,攻击者可能会使用此攻击。 通常为推理 SQL 注入,盲注入攻击不会直接从目标数据库中显示数据;相反,攻击者会仔细检查行为中的间接线索

二次注入是带外注入攻击。 在这种情况下,攻击者会提供SQL注入。 此注入由数据库系统的单独行为保存和执行。 如果出现二级系统行为,它可能类似于基于时间的作业或其他典型的管理员或用户使用数据库触发的内容。 然后,如果执行攻击者的SQL注入,则在“扩展”到系统时会发生攻击者的控制。

三. SQL注入攻击防范(三)带外注入

请勿将用户指定的输入直接放入SQL语句中; 使用准备好的语句和参数化查询更安全。

攻击者会制作 SQL 语句,这些语句在呈现给数据库时会触发数据库系统创建与攻击者控制的外部服务器的连接。以这种方式,攻击者可以收集数据或可能控制数据库的行为

加密数据库中存储的专用/敏感数据提供了另一层保护,防止攻击者成功排出敏感数据。

1.不要使用动态 SQL

将数据库用户功能设置为最低要求会限制攻击者在尝试获得访问权限时可以执行的操作。

2.不要将敏感数据保留在纯文本中

攻击者可以使用这些错误消息获取有关数据库的信息。

3.限制数据库权限和特权

这将保护面向Web的APP应用程序,以帮助识别SQL注入尝试。 根据设置的不同,它还有助于防止SQL注入尝试到达APP连接(和数据库)。

4.避免直接向用户显示数据库错误

这样可以捕获可能允许SQL注入的新错误或回归。

5.对访问数据库的 Web 应用程序使用 Web 应用程序防火墙(WAF)

这样可以防止攻击者利用旧版本中存在的已知弱点/错误。

【Java面试的事】

这里致力于分享Java面试过程中的各种知识。 无论是技术还是经验,需要的都在这里!

在这里可以【快速了解Java相关知识】,还有【短时间内在面试方面有飞跃性的提高】

面试过程中,你并不孤单!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。