文章目录
- 一、XSS(Cross-Site Scripting)
- 1.XSS概述
- 2.漏洞危害
- 3.常用payload
- b.反射型XSS(post)
- c.存储型XSS
- d.DOM型XSS
- e.DOM型XSS-X
一、XSS(Cross-Site Scripting)
1.XSS概述
XSS中文叫做跨站脚本攻击(Cross-site scripting),本名应该缩写为CSS,但是由于CSS(Cascading Style Sheets,层叠样式脚本)重名,所以更名为XSS。XSS(跨站脚本攻击)主要基于javascript(js)来完成恶意的攻击行为。
是一种经常出现在web应用中的计算机大全漏洞,也是web中最主流的攻击方式。那么什么是XSS呢?
XSS是指恶意攻击者利用网站对用户提交的数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去。使别的用户访问都会执行相应的嵌入代码。从而盗取用户资料、利用用户身份进行某种动作或者访问者进行病毒侵害的一种攻击方式。
XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
输出转义:根据输出点的位置对输出到前端的内容进行适当转义;
2.漏洞危害
植入键盘记录器。
攻击受害者所在的局域网。
代理转发流经被攻击者的所有 Web 流量,即实施中间人攻击。
窃取或篡改应用 cookie 用于会话劫持。
更改被攻击者 Web 应用的显示内容。
绕过 CSRF 安全防护措施。
创建包含恶意 JavaScript 代码的虚假网站以及到该网站页面的链接。
发送嵌入恶意 Web URL 的电子邮件。
使用 URL 短码隐蔽真实 URL。
3.常用payload
#最普通的xss #获取cookiexss #a链接的xss
# 外部攻击代码#加载图形失败执行
#框架F12找到源码位置
发现可以直接修改maxlength,将其改大点输入payload
payload:
或
效果:
b.反射型XSS(post)
输入用户名密码admin 123456
使用提交
弹出对话框说明注入成功,成功获取cookie
c.存储型XSS
攻击者将已经构造完成的恶意页面发送给用户,用户访问看似正常的页面后收到攻击,这类XSS通常无法直接在URL中看到恶意代码,具有较强的持久性和隐蔽性。
输入payload提交:
会弹出对话框,同时保存一条信息到留言列表
再次输入任意留言都会自动弹框
说明成功注入
此外在页面切换,然后再次切换回来,发现弹窗依然存在,说明我们输入的语句已经被存储起来。
这就是存储性与反射性永久性和一次性的区别,会永久的存储在数据库中。
d.DOM型XSS
什么时DOM
简单来说DOM文档就是一份XML文档,当有了DOM标准之后,DOM便将前端html代码化为一个树状结构,方便程序和脚本能够轻松的动态访问和更新这个树状结构的内容、结构以及样式,且不需要经过服务端,所以DOM型xss在js前端自己就可以完成数据的输入输出,不与服务器产生交互,这样来说DOM型xss也可以理解为反射性xss。
尝试输入123,F12定位代码what do you see?
然后输入’>或
’ οnclick=“alert(‘xss’)”>
构造之后的完成语句:
<a href= ’ ’ οnclick=’ ’ alert(’ xss’ )’ ’ >’ >what do you see?
说明完成闭合οnclick=" alert(’ xss’ )" >>what do you see?是另一个语句了
'>what do you see?
点击它会出现弹框,说明注入成功
e.DOM型XSS-X
可以看出仍然使用了字符串拼接
此处我们同样输入payload:'>或
’ οnclick=“alert(‘xss’)”>构造闭合
注入后要点击两次才能看到弹框