🏘️个人主页: 点燃银河尽头的篝火(●'◡'●)
如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦
【web安全】XSS篇
简介
XSS全称(Cross Site Scripting)跨站脚本攻击,XSS属于客户端攻击,受害者最终是用户,但特别要注意的是网站管理人员也属于用户之一。这就意味着XSS可以进行"服务端"攻击,因为管理员要比普通用户的权限大得多,一般管理员都可以对网站进行文件管理,数据管理等操作,而攻击者一般也是靠管理员身份作为"跳板"进行实施攻击。
XSS攻击最终目的 是在网页中嵌入客户端恶意脚本代码,最常用的攻击代码是javascript语言,但也会使用其它的脚本语言。
原理
可控变量在输入和输出的过程中没有受到充分的过滤,导致参数在输出过程中被浏览器当做代码解析执行
危害
-
劫持用户cookie
伪造身份登陆
-
框架钓鱼
伪造钓鱼页面
-
挂马
-
键盘记录
-
权限维持
分类
反射性XSS
传参不被存储在数据库中,服务端只是简单的把用户输入的数据反射给浏览器,是一次性。
存储型XSS
传参被存在在数据库里面,可以重复使用。
XSS弹cookie(前提:浏览器中存储cookie)
DOM XSS(特殊的反射XSS)
不与后台服务器产生数据交互,通过前端的dom节点形成
允许开发者以编程方式访问和修改文档的内容和结构。
DOM节点:
- 元素节点:代表HTML或XML文档中的标签(如
<div>
或<p>
)。- 文本节点:包含元素或属性中的文本。
- 属性节点:包含元素的属性(例如'class="example"`)。
测试
工具
-
APPscan、AWVA、Burpsuite
-
半自动化工具
Burpsuite、firefox(hackbar)、XSSER XSSF
手工
最重要的是考虑那里有输入,输入的数据在什么地方输出
防护
-
对输入的参数进行过滤,对输入进行html实体编码
htmlspecialchars()函数
&
------>&
<
------><
>
------>>
""
------>"
''
------>#039
-
waf防护
-
HTTP only设置
HTTP Only 是一种安全设置,用于保护网站的cookie 免受客户端脚本(例如JavaScript)的访问。这是通过在HTTP响应中设置一个特定的cookie属性来实现的。
具体来说,当一个cookie被标记为"HTTP Only"时,它只能通过HTTP请求进行访问,而不能被客户端脚本访问。这个设置有助于防止跨站脚本攻击(XSS)窃取cookie中的敏感信息。
绕过
前端限制绕过
大小写绕过
通过大小来绕过一些对字符的匹配
<sCRipt>alert('xss')</sCrIPt>
双写绕过
通过嵌套字符在对方检测到非法字符并替换为空的时候剩下的的字符又可以组成一个非法字符绕过检测继续执行语句
<scrscriptipt>alert('xss')</scrscriptipt>
编码
通过将注入语句进行编码来绕过检测
<img src=xonerror="alert('yangshuang')"/>
注释干扰后台绕过
攻击者利用注释来隐藏或干扰恶意脚本的执行。
<sc<!--test-->ript>alert('xss')</scr<!--tshauie-->ipt>
标签语法替换
提交方式更改
垃圾数据溢出
结合其他漏洞绕过
HTTPonly绕过
浏览器未保存帐号密码:需要xss产生登录地
址,利用表单劫持
浏览器保存帐号密码:浏览器读取帐号密码
针对HTML实体化绕过
上传非图片导致的XSS
挖SRC会遇到很多文件上传,例如:头像、客服、认证。可以通过修改文件后缀,文件内容来尝试写入存储XXS。如果是对文件内容做检测,可以在此网站查询后,自行构造需要的文件头,从而绕过检测,上传任意文件。
https://en.wikipedia.org/wiki/List_of_file_sign
atures#文件头对照表