欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【XSS爬坑之路一】初识XSS

程序员文章站 2024-01-26 12:44:58
...

XSS入门与介绍

1. XSS简介

XSS,跨站脚本攻击(Cross Site Scripting),是一种注入式攻击。为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

2. XSS成因

  • 对于用户输入过滤不足

  • 对于非预期输入的信任

3. XSS的危害

  • 盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号

  • 窃取数据,如盗取企业重要的具有商业价值的资料

  • 控制企业数据,如读取、篡改、添加、删除企业敏感数据

  • 非法转账

  • 网站挂马

  • 强制发送电子邮件

  • 控制受害者机器向其它网站发起攻击

4. XSS分类

  1. 反射型XSS:反射型跨站脚本(Reflected Cross-site Scripting),也称非持久型(Non-persistent XSS)、参数型跨站脚本。主要用于将恶意脚本附加到URL地址的参数中,只是简单地把用户输入的数据反射给浏览器,攻击者需要诱使用户点击该链接。

  2. 存储型XSS:存储型跨站脚本(Stored Cross-site Scripting),也称持久型(Persistent Cross-site Scripting。比反射型跨站脚本更具有威胁,并且可能影响到Web服务器自身的安全。攻击者先将恶意脚本代码上传或者存储到漏洞服务器中,只要受害者浏览了有该恶意代码的页面就会执行恶意代码。

  3. DOM XSS:DOM XSS从效果上来说是一种反射型XSS,但相比反射型XSS需要更进一步思考。通过修改页面的DOM节点形成的XSS。

5. 实例分析

1. XSS输出在HTML中的情况

这里是我自己搭建的环境,发现输出是直接输出在HTML中,并且没有过滤任何东西

【XSS爬坑之路一】初识XSS

【XSS爬坑之路一】初识XSS

那么我们直接构造

<script>alert(1)</script>

网页会解析这段代码,从而达到弹窗的效果

【XSS爬坑之路一】初识XSS

2. XSS在input value中的情况

在对话框中输出,发现直接显示在下方框中

【XSS爬坑之路一】初识XSS

【XSS爬坑之路一】初识XSS

那么如果我们直接输入

<script>alert(1)</script>

这段代码就会被当作文本被输出

【XSS爬坑之路一】初识XSS

那么我们需要把输出不放在input里,则可以通过闭合
构造payload为

"><script>alert(1)</script>

成功弹框

【XSS爬坑之路一】初识XSS

3. XSS输出在HTML属性中的情况

本来文本框中得到get参数,但是当我们闭合为

 "><script>alert(1)</script>

时,发现过滤了script标签

【XSS爬坑之路一】初识XSS

【XSS爬坑之路一】初识XSS

那么我们只能换一种弹框方式,构造payload为

"><img src="1" onerror="alert(1)">

成功实现弹窗,当然这里也可以构造成

" onclick="alert(1)"

这样当用户点击时则发生弹框

【XSS爬坑之路一】初识XSS

4. XSS输出在script标签中的情况

发现输出的数据为get的参数,但是是通过javascript输出的

【XSS爬坑之路一】初识XSS

【XSS爬坑之路一】初识XSS

所以我们需要将

</script><script>alert(1)

【XSS爬坑之路一】初识XSS

5. XSS输出在textarea中的情况

这是一个留言板,那么就只能用存储型XSS,那么我们需要向留言板中插入

<script>alert(1)</script>

【XSS爬坑之路一】初识XSS

插入后,当其他人点击后,则会弹框。我们可以用这个留言板来获取他人的cookie信息,从而登录别人的帐号

【XSS爬坑之路一】初识XSS

暂时就先学到这里,以后的学了再写出来