protSwigger下的SQL注入系列--Lab1(检索隐藏的数据)

protSwigger下的SQL注入系列–Lab1(检索隐藏的数据)

在不同情况下会出现各种SQL注入漏洞,攻击和技术。一些常见的SQL注入示例包括:

  • 检索隐藏的数据,您可以在其中修改SQL查询以返回其他结果。
  • 颠覆应用程序逻辑,您可以在其中更改查询以干扰应用程序的逻辑。
  • UNION攻击,您可以在其中从不同的数据库表中检索数据。
  • 检查数据库,您可以在其中提取有关数据库版本和结构的信息。
  • 盲SQL注入,其中您控制的查询结果未在应用程序的响应中返回。
    在这里插入图片描述
    第一步:进入实验,判断是否存在注入点:

在这里插入图片描述
1、2 开始注入 or 1=1 –

在这里插入图片描述
在这里插入图片描述
这样第一个实验就结束了
接下来简单说明一下这个实验的原理:

考虑一个显示不同类别产品的购物应用程序。当用户单击“礼物”类别时,其浏览器将请求URL:

https://insecure-website.com/products?category=Gifts

这将导致应用程序执行SQL查询,以从数据库中检索相关产品的详细信息:

SELECT * FROM products WHERE category = ‘Gifts’ AND released = 1

此SQL查询要求数据库返回:

  • 所有详细信息(*)
  • 从产品表
  • 类别是礼物
  • 并发布为1。
    该限制released = 1用于隐藏未发布的产品。对于未发布的产品,大概是released = 0。

该应用程序未对SQL注入攻击实施任何防御措施,因此攻击者可以构建如下攻击:

https://insecure-website.com/products?category=Gifts’–

这将导致SQL查询:

SELECT * FROM products WHERE category = ‘Gifts’–’ AND released = 1

这里的关键是双破折号序列–是SQL中的注释指示符,意味着查询的其余部分将被解释为注释。这样可以有效删除查询的其余部分,因此不再包含AND released = 1。这意味着将显示所有产品,包括未发布的产品。

更进一步,攻击者可以使应用程序显示任何类别的所有产品,包括他们不知道的类别:

https://insecure-website.com/products?category=Gifts’+OR+1=1–

这将导致SQL查询:

SELECT * FROM products WHERE category = ‘Gifts’ OR 1=1–’ AND released = 1

修改后的查询将返回类别为Gifts或1等于1的1=1所有项目。由于始终为true,因此查询将返回所有项目。

相关解释来源于:https://portswigger.net/web-security/sql-injection

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值