赞
踩
目录
6. 从黑客角度,如何利用漏洞进行攻击,不同类型的XSS漏洞利用方式上有何区别?
OWASP(Open Web Application Security Project),开放式web应用安全项目,而OWASP TOP 10是面向开发人员和 Web 应用程序安全性的标准意识文档,它代表了关于 Web 应用程序最关键安全风险的广泛共识。说白了,就是总结了国际公认的关于web安全的排名前十大安全风险。
2021年的OWASP TOP 10为
- A01:2021-破碎的访问控制
- A02:2021-加密故障,以前称为敏感数据暴露
- A03:2021-注入
- A04:2021-不安全的设计
- A05:2021-安全配置错误
- A06:2021-易受攻击和过时的组件
- A07:2021-标识和身份验证失败
- A08:2021-软件和数据完整性故障
- A09:2021-安全日志记录和监控故障,以前是日志记录和监控不足
- A10:2021-服务器端请求伪造SSRF
今天,我们主要学习第三个:注入,主要讲SQL注入与XSS注入。
SQL注入攻击以网站数据库为目标,利用Web应用程序对用户所输入的数据过滤不完全的缺陷,输入精心构造的字符串,导致攻击者输入的恶意SQL语句被执行,从而非法访问网站数据库内容或在数据库中执行命令,严重危害网站的安全。
(1)数据库信息泄露:攻击者可以通过SQL注入获取服务器的库名、表名、字段名、数据库版本,操作系统,从而获取到整个服务器中的数据,对网站用户的数据安全有极大的威胁。
(2)登陆认证被绕过
(3)数据库被恶意操作:攻击者对数据库进行任意的增删改查操作,如果是黑产分子,甚至是对数据库进行脱库,进行数据贩卖。
(4)网站被挂马:如果网站目录存在写入权限,可以在网站中写入木马,攻击者进而可以对网页进行纂改,发布一些违法信息等;
(5)经过提权等步骤,服务器的最高权限被攻击者获取,攻击者可以远程控制服务器,安装后门,得以修改或控制操作系统等。
(1)增强输入验证和过滤,使用白名单和黑名单
(2)特殊字符转义
(3)预编译
(4)尽量不要使用动态拼装的SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。
(5)使用WAF等专业的防护软件系统
(6)数据库重要信息(比如密码)加密存储,并及时做好备份
(7)遵循最小特权原则。只过访问数据库的Web应用提供所需的最低权限。
(8)应用的异常信息应该给出尽可能少的提示。比如不要随意开启生产环境中 Webserver的错误显示,减少报错SQL注入攻击
一般来说,只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在 Sql 注入。如果程序员没有足够的安全意识,没有进行必要的字符过滤,存在SQL注入的可能性就非常大。
检测方法:手工注入、SQL注入工具(如SQLmap)等
单引号判断法:在参数后面加上单引号,如果页面返回错误,则存在 Sql 注入。
数字型注入:and 1=1 and 1=2 若两个链接返回的页面不同,说明该网页存在注入漏洞
字符型注入:'and '1'='1 'and '1'='2 字符串一般需要通过单引号来闭合的
(或者在URL或者表单中输入0 or 1,如果可以查到数据,说明是数字型注入;如果输入0' or 1#,查到数据说明是字符型注入)
联合查询:需要前面的语句是false,然后才能执行后面的查询语句
盲注:
基于bool的盲注:通常用函数length(),返回长度,ascii(),返回ASCII值,substr(string,a,b),返回string以a开头,长度为b的字符串,count(),返回数量。
基于时间的盲注:sleep,if(c,a,b)
报错型注入:强制数据库生成错误,为攻击者或测试人员提供优化其注入的信息。
如对and进行过滤,我们可以尝试:
1.对于and,or的绕过可以尝试一下&&,||,异或特殊符号注入
2.使用注释符绕过,比如: /*!and*/ uni/**/on se/**/lect
3.大小写绕过: ANd UniOn SeleCt
4.双关键字绕过:ununionion seselectlect
5.关键字替换(在关键字中间可插入将会被WAF过滤的字符)
6.Unicode法:+变成%2B,空格符变成%20等
7.ASCII码法:U=chr(85),a=chr(97)等
XSS攻击,即跨站脚本攻击,是指攻击者利用Web程序对用户输入过滤不足的缺陷,把恶意代码(包括HTML代码和客户端脚本)注入到其他用户浏览器显示的页面上执行,从而窃取用户敏感信息、伪造用户身份进行恶意攻击。
(1)反射型XSS又称非持久性XSS,这种攻击往往具有一次性。攻击者通过邮件等形式将包含XSS代码的恶意链接发送给正常用户,诱骗其点击,当用户点击时,服务器接受该用户的请求并进行处理,然后把带有XSS的代码发送给用户。用户浏览器解析执行代码,触发XSS漏洞,敏感信息被盗取。
流程:
- 1.A经常浏览B建立的网站。B的站点允许A使用用户名和密码进行登录,并存储敏感信息(如银行账户信息)。
-
- 2.C发现B的站点包含反射型XSS漏洞。
-
- 3.C编写一个利用该漏洞的URL,并将其冒充成来自B的邮件发给A,诱导A点击。
-
- 4.A在已登录B的情况下,浏览了C提供的URL。
-
- 5.嵌入到URL中的恶意脚本因为B的XSS漏洞存在,得以在A的浏览器中执行,此脚本盗窃敏感信息,
- 然后在A完全不知情的情况下将敏感信息发送到了C的web站点。
(2)存储型XSS又称持久型XSS,攻击脚本存储在目标服务器的数据库中,具有更强的隐蔽性。攻击者在论坛、博客、留言板中,发帖的过程中嵌入XSS攻击代码,帖子被目标服务器存储在数据库中。当用户进行正常访问时,触发XSS代码。
流程:
- 1.B拥有一个Web站点,该站点允许用户发布信息和浏览已发布的信息
-
- 2.C注意到B的站点具有存储型XSS漏洞
-
- 3.C在B的站点网页上发布了一个热点信息,且信息中包含了恶意代码
-
- 4.当B和其他用户点击浏览该信息的时候,就受到了XSS漏洞攻击,
- 其会话cookies或者其他信息被C盗走
(3)DOM型XSS全称Document Object Model。通过修改页面的DOM结点数据信息形成的XSS攻击。不需要服务器参与,而是用户浏览器处理这个响应时,DOM对象就会处理XSS代码,触发XSS漏洞。
检测方法:XSSer、beef 等工具
(1)XSS 盗取 Cookie(保留用户信息以便简化登录手续、购物车追踪客户端状态)之后,利用 Cookie 会话劫持
(2)破坏页面结构
(3)篡改链接指向恶意URL,进行钓鱼攻击
(4)网站挂马
(5)XSS蠕虫
(6)利用XSS漏洞扫描用户内网、还能获取诸如浏览器版本、外网IP地址、浏览器安装的插件类型等信息
(7)控制受害者计算机向其他网站发起攻击等
(1)加强对输入数据的过滤(比如白名单检测、使用XSS filter过滤器)
(2)输出编码、转义:对动态输出到页面的内容进行html编码,使脚本无法在浏览器中执行。
(3)前端渲染的时候,将代码和数据分开
(4)cookie防盗:http-only cookie 禁止javascript读取某些敏感的cookie,攻击者完成xss注入后无法窃取此cookie.
大小写绕过、双写绕过、标签优先级绕过等
反射型:要利用这个漏洞,攻击者必须以某种方式诱导用户访问一个精心设计的URL(恶意链接),才能实施攻击。
存储型:不需要特制的链接来执行。黑客仅仅需要提交 XSS 漏洞利用代码(反射型XSS通常只在url中)到一个网站上其他用户可能访问的地方。这些地区可能是博客评论,用户评论,留言板,聊天室,HTML 电子邮件等等地方。一旦用户访问受感染的页,执行是自动的。受害用户是多个。
至此,SQL注入和XSS注入粗略地描述完毕。
初次学习,如有错误,欢迎指出,感谢!
2. XSS攻击及防御
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。