黑客学习-xss漏洞总结

1、什么是xss

先来看案例

在一个输入框中,输入js代码,存放alter()其弹窗,结果可以看到,代码成功执行。这个就是xss漏洞

XSS攻击全称跨站脚本攻击,是一种在Web应用中常见的安全漏洞,它允许用户将恶意代码植入到Web页面中,当其他用户访问此页面时,植入的恶意脚本就会在其他用户的客户端中执行。是为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS

导致xss漏洞存在有几个原因

  1. 对用户提交的数据未进行充分验证和过滤,如未对特殊字符和标签进行转义,导致恶意脚本被注入到Web页面中。
  2. Web应用程序未对输出的数据进行过滤,导致恶意脚本被注入到Web页面中。
  3. Web应用程序将未经过验证和过滤的数据作为JavaScript代码执行,如在URL中传递参数、在HTML标签属性中传递参数等,导致恶意脚本被执行。
  4. Web应用程序使用不安全的JavaScript API,如eval()函数等,导致恶意脚本被执行。

2、xss的分类

xss分为三类:

  • 反射性xss
  • 存储型xss
  • dom型xss

反射性xss

反射性XSS,也叫非持久性XSS,是指攻击者将恶意脚本代码作为参数或请求体提交给Web应用程序,服务器将恶意脚本代码反射回到用户的浏览器中执行,从而实现攻击的方式。由于反射性XSS攻击需要用户触发,因此攻击者通常需要通过诱骗用户进行操作来实现攻击。

反射性XSS攻击的过程一般如下:

  • 攻击者构造一个包含恶意脚本的URL,并将其发送给用户或者在论坛等社交媒体平台上发布。
  • 用户点击链接,浏览器向Web服务器发出请求,将恶意脚本作为参数或请求体提交给Web应用程序。
  • 服务器将包含恶意脚本的响应返回给用户的浏览器。
  • 用户的浏览器解析响应,并执行其中的恶意脚本,导致攻击成功。

反射性XSS攻击是一种常见的Web安全漏洞,攻击者可以通过此种方式窃取用户的Cookie、伪造Web页面进行钓鱼攻击、篡改Web页面内容等各种恶意行为。为了防止反射性XSS攻击,开发人员应该加强对用户输入数据的过滤和验证,避免恶意代码被注入到Web页面中。

  • 存储型xss

存储型XSS(也称为持久性XSS)攻击是一种XSS攻击形式,攻击者通过对Web应用程序的数据库进行操纵,将恶意脚本代码存储在Web应用程序的数据存储中,当用户请求包含该恶意代码的Web页面时,恶意脚本代码被解析,并在用户的浏览器中执行。
 

与反射性XSS攻击不同,存储型XSS攻击的恶意脚本代码被存储在服务器端,攻击者可以利用漏洞将其注入到Web应用程序的数据库中。当用户请求包含恶意脚本代码的Web页面时,服务器会从数据库中获取相应的数据,然后将其返回给用户的浏览器,恶意脚本代码随之被执行,从而导致攻击成功。
 

存储型XSS攻击常见于在线社交平台、留言板、电子商务网站等具有用户交互功能的Web应用程序中。攻击者可以通过存储型XSS漏洞,窃取用户的敏感信息、窃取用户的Cookie、伪造Web页面进行钓鱼攻击等各种恶意行为。为了防止存储型XSS漏洞,开发人员应该对用户输入的数据进行充分过滤和验证,并对输出的数据进行过滤,避免恶意脚本代码被存储到Web应用程序的数据库中。

  • dom型xss

DOM型XSS(也称为基于DOM的XSS攻击)是一种XSS攻击形式,攻击者通过在Web页面中使用JavaScript中API,更改页面上的DOM节点,以注入恶意脚本。和存储型XSS、反射型XSS不同,DOM型XSS不涉及到数据的存储和传递,也不依赖于服务器的响应内容,而是针对客户端自身的操作进行攻击。

DOM型XSS攻击的过程一般如下:

  1. 攻击者构造一个包含恶意脚本的URL,并将其发送给用户或者在论坛等社交媒体平台上发布。
  2. 用户点击链接,浏览器向Web服务器发出请求,将恶意脚本作为参数提交给Web应用程序。
  3. Web应用程序将恶意脚本嵌入到Web页面中,并通过JavaScript中的API对其进行解析和执行。
  4. 恶意脚本在浏览器中执行,可以修改Web页面内容、窃取用户的Cookie、伪造Web页面进行钓鱼攻击等各种恶意行为。

为了防止DOM型XSS攻击,开发人员应该在编写JavaScript代码时,规范化传递参数的方式,避免输入数据被当作脚本解析执行。同时,也应该尽量避免直接修改DOM元素的方式,而是使用安全的HTML框架和模板,以降低受到XSS攻击的风险。用户在使用Web应用程序时,也应该保持警惕,不要轻信不明来源的链接和信息,以避免被攻击者利用DOM型XSS漏洞进行攻击。

3、常见的xss测试语句

无任何过滤:

<script>alter(1)</script>

<script>console.log("test")</script>   #符合src测试规范,

"><script>console.log("test")</script>  #值标签内考虑闭合

</textarea><script>console.log("test")</script>   #text标签内需先闭合标签

过限制的过滤:

<img src=1 οnerrοr=alert(1)>     #白名单标签
<scTipt>alert(1)</sCript>     #大小写转换
<scri<script>pt>alert(1)</scri<script>pt>     #标签嵌套绕过单次移除
"οnmοuseοver=console.log("test") "     #处理尖括号未处理引号
javascript:console.log('test')     #a标签href属性内且无法闭合属性
';alert(1);//     #script标签内的测试,对尖括号有处理

4、xss靶场练习:dvwa

5、 xss的漏洞利用

xss漏洞利用,可以是使用BeEF。BeEF(Browser Exploitation Framework)是一种基于Web的渗透测试框架,可以用来控制几乎所有类型的Web浏览器,包括桌面和移动设备上的浏览器。它可以使渗透测试人员利用XSS漏洞在用户的浏览器中执行特定的JavaScript码,以从用户身上获取敏感信息。BeEF也提供了多种模块,帮助渗透测试人员执行网络漏洞扫描,并在Web浏览器中执行漏洞利用等功能。

以下是kali安装beff步骤:

1、更新系统软件包:

sudo apt-get update
sudo apt-get upgrade

2、安装beef

sudo apt-get install beef-xss

3、启动beef服务

sudo beef-xss

4、启动beef

在浏览器中,在地址栏中输入localhost:3000。打开该页面即可看到BeEF的管理控制台。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值