前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL注入攻击与防御-第二章

SQL注入攻击与防御-第二章

作者头像
Baige
发布2022-03-11 08:15:41
6860
发布2022-03-11 08:15:41
举报
文章被收录于专栏:世荣的博客

SQL注入测试

1.寻找SQL注入

SQL注入可以出现在任何系统或用户接受数据输入的前端应用中,这些应用之后被用于访问数据库服务器。 HTTP定义了很多种客户端可以发送给服务器的操作,但是这里只关注与SQL注入相关的两种方法:GET和POST。

GET请求: GET请求是一种请求服务器的HTTP方法。使用该方法时,信息显示在URL中。点击一个链接时,一般会使用该方法。Web浏览器创建GET请求,发送给Web服务器然后再浏览器中呈现结果。GET请求对用户是透明地。 POST请求: POST是一种用于向Web服务器发送信息的HTTP方法。服务器执行的操作则取决于目标URL。在浏览器中填写表单并点击Submit按钮时通常使用该方法。浏览器会完成所有工作。

  • 寻找SQL注入漏洞存在三个关键点: (1)识别Web应用接受的数据输入

(2)修改输入值以包含危险的字符串 (3)检测服务器返回的异常

  • 使用Web代理角色扮演的工具有助于绕过客户端限制,完全控制发送给服务器的请求。此外,它们还能提高服务器相应的可见度,提供更多检测到细小漏洞的机会。
  • 包含数据库错误或 HTTP 错误代码的服务器响应通常能降低识别SQL漏洞的难度。不过SQL盲注是一种即使应用不返回明显错误也能利用漏洞的技术。

2.确认SQL注入

  • 要想确认一个SQL注入漏洞并进一步加以利用,需要构造一条能注入SQL代码的请求以便应用创建一条语法正确的SQL语句,之后由数据库服务器执行该条语句且不返回任何错误。
  • 创建语法正确的语句时,可以终止它并注释剩下的的查询。对于这种情况,通常可以毫无约束地连接任意SQL代码(假设后台数据库支持执行多条语句),进而提供执行攻击(权限提升)的能力。
  • 有时候,应用对注入操作没有任何回复任何可见的信息。这时候通过向来自数据库的回复引入延迟来确认注入。应用服务器等待数据库回复,这时可以确认是否存在漏洞,对于这种情况,需要意识到网络和服务器工作负荷可能对延迟造成轻微干扰。

3.自动发现SQL注入

  • 寻找SQL注入漏洞所涉及的操作可以被适度自动化。当需要测试大型Web站点时,自动技术非常有用,但需要意识到自动发现工具可能无法识别某些存在的漏洞,不能完全依赖自动化工具。
  • 有很多商业工具可以对Web站点的完整性进行评估,还可以进行SQL注入漏洞测试。
  • 可选择免费,开源的工具来辅助大型站点中SQL注入漏洞查询操作。

总结

1.是否所有Web应用均易受到SQL注入攻击? 答:SQL注入漏洞只会出现在访问数据库的应用中。如果应用未连接任何数据库,那么便不会受到SQL注入攻击。即使应用连接了数据库,也并不代表就易受到攻击。 2.当我向Web应用的搜索功能插入一个单引号时,发现了一个奇怪的现象:我并没有收到任何错误,该应用是否可以被利用? 答:这要具体问题具体分析。如果事实证明这是一个SQL注入漏洞,那么该应用可以被利用。即使它不返回任何数据库错误,也可以利用。构造有效的SQL语句的推理需要对SQL语句的熟悉以及一点点灵活的思路,但只要多刷刷CTF,多练练靶场,总归是不错的。 3.SQL注入和SQL盲注有何差别? 答:在常规SQL注入中,应用返回数据库中的数据并呈现出来。而在SQL盲注中,只能获取分别与注入中的真、假条件相对应的两个不同相应。 4.为什么需要将SQL注入盲注利用自动化,而不需要将常规化SQL注入自动化? 答:利用SQL盲注漏洞需要向远程Web服务器发送5~6个请求来找到每个字符。为显示数据库服务器的完整版信息,可能要发送数百个请求,使用手动方法的话会极其费力且难以实施。 5.什么是引发SQL注入漏洞的主要原因? 答:Web应用未对用户提供的数据进行充分审查或未对输出进行编码是产生问题的主要原因,此外,攻击者还可以利用其他问题,比如糟糕的设计或不良的编码实践。如果缺少输入审查,那么这些问题就都可以被利用。 6.我已经检测并确认了一个SQL盲注漏洞,当常用的漏洞利用工具好像不起作用。 答:SQL盲注每次的情况会略有不同,有时现有的工具无法利用每个漏洞。要确认该漏洞可以手动证实且工具已正确配置。如果现有的工具无法利用每个漏洞,可以定制化工具,或者添加辅助插件,修改工具源码已达到正确检测的目的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022 年 03 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.寻找SQL注入
  • 2.确认SQL注入
  • 3.自动发现SQL注入
  • 总结
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档