SQL注入
发布日期:2021-05-08 16:32:41 浏览次数:19 分类:精选文章

本文共 790 字,大约阅读时间需要 2 分钟。

SQL注入原理

sql注入的原理就是后端无条件相信前端提交过来的代码,从而导致一些恶意的查询。

一般sql注入经常出现在URL的参数里,一些输入框里。
sql注入把前端提交的代码当成了后端查询的代码执行了。

SQL注入分类

SQL注入分为两类,一种是数字注入也是简单的一种,另一种是字符注入。

数字型注入

当输入的参数为整数时,如ID,年龄,页码等如果存在注入漏洞,则可以认为是数字型注入。

数字型注入最多出现在ASP,PHP等弱类型语言中,弱类型语言会自动推导变量类型。

字符型注入

当输入参数为字符串时,则成为字符型,数字型与字符型注入的最大区别在于:数字型不需要简单的单引号闭合,而字符串类型一般要使用单引号来闭合。

常见注入

  • POST注入
  • Cookie注入
  • 延时注入
  • 搜索注入
  • base64注入

数据库注入

SQL Server

  1. 利用错误消息提取信息
    SQL server数据库是一个非常优秀的数据库,它可以准确的定位错误位置。对开发人员是一件很好的事情,对攻击者来说也是一件很好的事情。
    如果SQL语句如下select * from users where username='root'
    攻击者可以利用SQL Server的特性来获取敏感信息攻击语句:
    'having 1=1--则SQL执行
    器抛出一个错误×××user.id无效×××可以发现当前表为user存在ID列名。
    可以利用这来得到其他列名
    select * from users where username='root' and password='root' group by users.id having1=1--
    会显示错误XXXusers.username无效。由此可以依次递归查询,直到没有错误消息返回为止,这样就可以利用having字句"查询"出当前表的所有列名
  2. 利用数据类型错误提取数据
上一篇:Redis未授权漏洞
下一篇:幽灵猫漏洞复现

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年03月21日 05时38分15秒