U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 常见问题解答 >

Web系统常见安全漏洞介绍及解决方案-sql注入

来源:http://www.tudoupe.com时间:2022-07-31

先看一下目录

  • 一、常见漏洞类型
  • 二、SQL注入
    • SQL注射器危险及可能原因
    • 2、场景重现
    • 3、sql盲注
    • 4、检测?法
    • 5、防护?案
  • 三、使用ORM框架

一、常见漏洞类型

关于网络安全测试,主要有以下攻击方法:

  1. XSS跨站脚本攻击
  2. CSRF跨站请求伪造
  3. 点击劫持(覆盖用户页面上方透明的iframe)
  4. h5新标签漏洞
  5. SQL注入
  6. 跨目录访问
  7. 缓冲区溢出
  8. cookies修改
  9. Htth方法操作(包括隐藏字段修改和参数修改)
  10. 命令行注入

今天的讨论主要是SQL注入问题。

二、SQL注入

SQL注射器危险及可能原因

严重性:
类型:应用级别测试
WASC威胁分类:WASC-19 SQL Injection(sql注入)
WASC对脆弱性分类参考布尔法的介绍

CVE参考:不适用

CVE 的英文全称是“Common Vulnerabilities & Exposures”通用漏洞披露。CVE就像字典。为广为人知的资讯保安漏洞或暴露的弱点提供公开名称。使用一个共同的名称,帮助用户在自己的独立脆弱性数据库和脆弱性评估工具中共享数据,尽管这些工具很难结合起来。这使得CVE成为安全信息共享的“关键字”。如果 vulnerability报告中发现一个漏洞,如果有CVE名称,您可以在任何其他CVE兼容的数据库中快速找到相应的补丁信息,解决安全问题。

安全风险:

  1. 查看、修改或删除数据库条目和表 - SQL Blind Notes
  2. 可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务 —跨站的脚本编制

可能原因:
用户输入时不正确执行危险字符的清洁

2、场景重现

攻击者LiSQL注意到一个漏洞,可以获取数据库中的多个信息(例如管理员的后端密码),从数据库中删除内容。在特殊情况下,可以修改数据库的内容或将它们插入数据库,如果数据库权限分配有问题,或者数据库本身有缺陷,然后攻击者直接通过SQL Notes漏洞访问Web壳或服务器系统权限。
例如,如果应用程序根据用户输入(如用户名和密码)查询用户帐户数据库表,以认证用户,攻击者可以将恶意数据注入查询的用户名部分(和/或密码部分),查询可以更改为完全不同的数据复制查询,可以修改数据库查询,或者在数据库服务器上运行壳牌命令查询。
一般来说,攻击者将逐步实现这个目标。 他首先学习SQL查询的结构,然后利用这个知识来封锁查询(通过对查询语法数据注入更改),使执行的查询与预期的不同。

$user和$pass是用户在登录页面中输入的值(可能来自GET请求查询参数),它也可以来自 POST请求主体参数。此查询的一般用法,它的值是: u s e r = j o h n, user=john, user=john, password=secret123。形成的查询如下:

如果数据库中没有用户密码匹配,预期查询结果为0,如果该阵列存在(即数据库中的用户称为 john),它的密码是"秘密123"),结果便是 >0。这是应用程序的基本认证机制。但攻击者可以以下列方式更改查询:
攻击者可以提供一个由单数字符(')组成的输入,要使数据库发送错误消息,它通常包含关于SQL查询的宝贵信息。攻击者只是在发送的请求中包含了用户值,包含密码中任何值(例如 foobar)。结果便是下列(格式错误)的 SQL 查询:SELECT COUNT(*) FROM accounts WHERE username=''' AND password='foobar'

该代码查询数据的后端执行可能导致语法错误,这时攻击者便得知查询是根据表达式 username=‘ u s e r ′ a n d p a s s w o r d = ′ user’ and password=’ user′andpassword=′pass’ 来构建的。一旦攻击者了解查询格式的关键信息,下一步只需使用:
user =' or 1=1 or ''=' password = foobar
生成的查询如下:

该SQL代表查询“帐户”表中的所有记录,因为表达式1=1总是正确的,用户(攻击者)也被视为有效。这种检测方法有几个变量,例如,发送 '; or '(您应该记住,几乎所有供应商都有自己的独一无二的SQL版本。具体地说,发送出有1 = 1,也会生成错误消息,这个消息泄露了列名称的信息。

3、sql盲注

降低 SQL 注入攻击风险的一般方式,是禁止详细的 SQL 错误消息,攻击者通常便利用这些消息(如上述示例所示报错信息提供了sql具体内容),轻易找出容易遭受“SQL 注入”的脚本。
这种隐藏报错信息的解决方案还不能够真正解决问题,攻击者可以通过sql盲注技术进行攻击,这种注入方法不需要依赖返回 SQL 错误消息,便能找出容易遭受“SQL 注入”的脚本。

sql盲注要求修改发送请求的参数(嵌入SQL查询的参数),该修改包括使用 AND 布尔表达式匹配原始字符串,使sql条件能够直接得出 true或 false,最终的结果应该与原来的结果相同(例如登录成功)或不同(例如登录失败)。在一些罕见情况下,也可以得到真的OR表达式。

4、检测法

  1. SQL Notes的漏洞可能存在于系统传输参数中,这些参数将数据库绑定到操作中。
  2. GET, POST参数。
  3. COOKIE参数。
  4. http请求头。主机头、引站点(referer)、User-Agent和X-Forwarded-For等。
  5. 测试SQL注释. 创建SQL注释测试句子测试输入参数.
  6. 特殊符号:单位数,子位数,网络服务器响应错误。
  7. 条件响应:and 1=1、and 1=2、’ or ‘1’=‘1、’ or ‘1’='2,两次web服务器响应不同。
  8. 时间延迟: sleep(5),等待延迟'0:0:5',系统服务器延迟响应。
  9. 参数添加:增加和减少数值类型的操作,字符类型将数据库连接符号转换为连接。 系统服务器响应与原始响应相同。
  10. SQL注释:为完成上述测试,请构造SQL注释或让SQLMAP检测脚本构造注释。

5、防护案

解决这个问题的办法是筛选、校正或提取用户输入参数?预处理参数?表格
通过验证用户输入未包含危险字符,便可能防止恶意的用户导致应用程序执行计划外的任务,例如:启动任意 SQL 查询、嵌入将在客户端执行的 Javascript. 代码、运行各种操作系统命令,等等。
建议筛选下列所有字符:
[1]|(垂直符号)
[2] & (& 符号)
[3];(分号)
[4]$(美元符号)
[5]%(百分比符号)
[6] @(以符号)
[7]’(单一引言)
[8] "(引号)
[9]'(反斜角字典)
[10](防滑栏翻译)

这就是我们的方法。我们将特殊代码添加到黑名单中,将包含黑名单中的特殊代码的查询筛选到全球听众中,并基本上解决SQL注入问题。

在这里插入图片描述

三、使用ORM框架

使用ORM框架进行SQL注入是积极的,在SQL注入的实际解决方案中,另一个困难是应用复杂性后,代码数量庞大,很难找到SQL注入可能存在的地方。ORM框架为我们提供了一种方便的方法来发现问题。举例来说,迈巴斯。它生成的SQL语句结构编写在XML文件中,它支持动态sql,您可以将动态变量${keyid}插入SQL声明中,如果用户可以控制这个变量,将存在SQL注入中的漏洞。

而静态变量#{userid}是安全的,因此,当使用Mybatis时,你只需要搜索所有映射文件中的动态变量。当业务需要使用 dynamicsql时,可以作为特例处理,例如,在上层代码逻辑中,对变量施加严格控制。确保没有注射问题。

先自我介绍一下,他高中毕业了13年,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。了解大多数年轻的Java工程师,想要升技能,经常需要找到自己的成长或向班上汇报。但对于培训机构来说,学费大约是人民币,着实压力不小。当你不在系统时,自我学习的效率很低,而且很持久。也很容易停止天花板技术。所以我为你收集了一个"java开发工具"初衷也很简单,这是一个想帮助自己学习的朋友,却不知道该从哪里学习。同时减少每个人的负担.添加下方名片,你可以得到完整的学习信息

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息