关于XSS跨站的一些笔记

关于XSS跨站的一些笔记

一.XSS的原理

1.XSS的本质

XSS的本质是一种前端漏洞,用户的数据被当成前端代码的一部分来执行,从而混淆了原本的语义,产生了新的语义.
比如在这里输入xiaodi,页面回显了xiaodi,如果把这换成js脚本那么就可以实现一些目的。(当然现实远远没有这么简单)
在这里插入图片描述

2.XSS的产生层面

如果网站使用MVC架构,那么XSS就发生在VIEW层,即在应用拼接变量到HTML页面时产生.在有用户提交数据进行输入检查的方法,其实并不是在真正发生攻击的地方防御.比如在线购物平台会将购买人的信息返回到服务器查看,这是如果使用注入语句填写在购买人信息中,工作人员在查看信息时注入语句就会执行,就可以实现一些功能了。

3.XSS的危害

或者说学会XSS攻击后咱能干啥呢,啊不,能避免坏分子干啥呢:
• 窃取管理员帐号或Cookie,入侵者可以冒充管理员的身份登录后台。使得入侵者具有恶意操纵后台数据的能力,包括读取、更改、添加、删除一些信息。

• 窃取用户的个人信息或者登录帐号,对网站的用户安全产生巨大的威胁。例如冒充用户身份进行各种操作,查看用户记录,真实ip,开放端口等。或者控制受害者机器向其它网站发起攻击。

• 进行大量的客户端攻击,DDOS攻击。

• 网站挂马。先将恶意攻击代码嵌入到Web应用程序之中。当用户浏览该挂马页面时,用户的计算机会被植入木马。

• 发送广告或者垃圾信息。攻击者可以利用XSS漏洞植入广告,或者发送垃圾信息,严重影响到用户的正常使用。

4.XSS的检测

• 检测WEB应用程序是否存在XSS漏洞,最重要的就是搞清楚在哪里可以进行注入,信息又在哪里输出。

• 在知道输入和输出位置时, 可以输入一些敏感字符,比如” ’ ()<>等,在提交请求后 查看HTML源代码,看这些输入的字符是否被转义,再进行相应的绕过。

• 无法得知输出位置时,看不到源码时,有可能无法得知输入数据到底在哪里显示。比如留言本, 留言之后要经过审核才显示,这时候就无法得知输入的数据在后 台管理页面是何种状态。

二.XSS的分类

1.反射型XSS

反射型跨站脚本也称作非持久型、参数型跨站脚本。这种类型的跨站脚本是最常见的,也是使用最广的一种,主要用于将恶意脚本附加到URL地址的参数中,参数作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。反射型跨站脚本经过后端不经过数据库。
比如说网站让我们输入最喜欢的球员:
在这里插入图片描述
提交后在url回显中发现message值被修改了
在这里插入图片描述那么用检查是否存在XSS漏洞,如果有弹窗那么证明存在XSS漏洞。

2.储存型XSS

存储型XSS和反射型XSS的差别仅在于,提交的代码会存储在服务器端(数据库、内存、文件系统等),下次请求目标页面时不用再提交XSS代码(是一种持续的攻击)。最典型的例子就是留言板XSS,用户提交一条包含XSS代码的留言存储到数据库,目标用户查看留言板时,那些留言就会从数据库中加载出来并显示,于是出发了XSS攻击

如果存在储存型
在这里插入图片描述

留言储存在了对方的服务器中
那么在留言中就可以写入注入语句了
在这里插入图片描述

3.Dom型XSS

DOM型XSS是特殊的XSS,页面中有很多元素,浏览器会为这些元素创建对应的文档对象,每个对象都有属性和方法。通过构造js编辑文档对象,修改页面,获取DOM中的数据,DOM XSS代码并不需要服务器参与,出发XSS靠的是浏览器的DOM解析。
在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/ec1957117e574376aabd3482fd3352a7.png
我们可以通过查看页面源代码来发现注入点所属的文件,然后通过修改变量或文件达到注入效果。

三.XSS的攻击手法

攻击手法
链接: 虽然没啥人看但是我还是会更新,因为这是我自己的笔记.
这里给下一篇关于XSS靶场的通关记录链接留个位置(i kill you 靶场),在下一篇同时会通过靶场通关的方式讲攻击手法和一些绕过waf的方法。

四.XSS的绕过方式

1.绕过httponly

在这里插入图片描述
httponly开启的表现:XSS攻击成功但获取不到cookie
httponly的作用:防止js读取cookie
在此之前说下,我们获取cookie的目的是为了获取用户身份,以此来登陆后台,httponly是防止js读取cookile,我们可以转而寻找后台管理员的账户密码。
浏览器未保存账户密码:需要xss产生登陆地址,利用表单劫持(需要登陆界面有跨站漏洞,利用有难度)。
浏览器保存账户密码:借助在后台的xss,使用存储型xss或者其他方式获取账户密码。
攻击思路
①以进入后台做为我们的目标
那么除了获取cookie之外,还可以直接账号密码登录,但是账号密码又分为两种情况,保存读取和没保存读取,也就是是否让浏览器记住密码了。
②保存读取:
攻击思路:读取保存的数据
③没保存读取:
攻击思路:表单劫持
前提:XSS跨站漏洞要产生在登录框那里
原理:管理员输入账号密码之后,一份发给服务器,另一份发给攻击者。

2. 绕waf

链接: 虽然没啥人看但是我还是会更新,毕竟这是我自己的笔记.
这里给下一篇关于XSS靶场的通关记录链接留个位置(i kill you 靶场),在下一篇同时会通过靶场通关的方式讲攻击手法和一些绕过waf的方法。

五.XSS漏洞的修复

对用户输入的数据进行全面安全检查或过滤,尤其注意检查是否包含HTML特殊字符。这些检查或过滤必须在服务器端完成,建议过滤的常见危险字符如下:
|(竖线符号)
& (& 符号)
;(分号)
$(美元符号)
%(百分比符号)
@(at 符号)
'(单引号)
"(引号)
'(反斜杠转义单引号)
"(反斜杠转义引号)
<>(尖括号)
()(括号)
+(加号)
CR(回车符,ASCII 0x0d)
LF(换行,ASCII 0x0a)
,(逗号)
(反斜杠)

六.XSS的简单实战——pikachu靶场记录

1. 反射型XSS(get)

让cookie显示在弹框中
在url的message中注入:
在这里插入图片描述

<script>alert(document.cookie)</script>

在这里插入图片描述

2. 反射型XSS(post)

爆破完密码后和get一样

<script>alert(document.cookie)</script>

在这里插入图片描述

3. 储存型:注入后刷新页面

<script>alert(document.cookie)</script>

在这里插入图片描述

4. DOM

输入123
在这里插入图片描述因为数据在herf中,所以构造js语句

javascript:alert(document.cookie)

点击what do you see
在这里插入图片描述

5. DOM2

查看源代码一样的在herf里还是用上面的句子用两次
在这里插入图片描述

6. XSS盲打

盲打就是没有实时回显,也不知道一些关键字有没有被屏蔽,注入成功的话效果也是会有的,就像用下面这句话会在后台管理员界面中弹出cookie。

<script>alert(document.cookie)</script>

登录后台后
在这里插入图片描述

7. XSS过滤

在这里插入图片描述采用大小写混合绕过,其实不止这一种方法(会下下一篇靶场练习中细细道来)
在这里插入图片描述在这里插入图片描述

8. Xss htmlspecialchars

在这里插入图片描述储存在了herf里,那么用js

javascript:alert(document.cookie)

在这里插入图片描述

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>