XSS漏洞笔记
侧边栏壁纸
  • 累计撰写 53 篇文章
  • 累计收到 92 条评论

XSS漏洞笔记

白羊
2024-10-11 / 0 评论 / 3,263 阅读 / 正在检测是否收录...

什么是 xss?
XSS 全称(Cross Site Scripting)跨站脚本攻击,为了避免和 CSS 层叠样式表名称冲突,所以改为了 XSS,是最常见的 Web 应用程序安全漏洞之一,位于 OWASP top 10 2013/2017 年度分别为第 s 三名和第七名,XSS 是指攻击者在网页中嵌入客户端脚本,通常是 JavaScript 编写的危险代码,当用户使用浏览器浏览网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。

从上面中的一段话,可以得知,XSS 属于客户端攻击,受害者最终是用户,但特别要注意的是网站管理人员也属于用户之一。这就意味着 XSS 可以进行 "服务端" 攻击,因为管理员要比普通用户的权限大得多,一般管理员都可以对网站进行文件管理,数据管理等操作,而攻击者一般也是靠管理员身份作为 “跳板” 进行实施攻击。

XSS 攻击最终目的是在网页中嵌入客户端恶意脚本代码,最常用的攻击代码是 javascript 语言,但也会使用其它的脚本语言,例如:ActionScript、VBscript。而如今的互联网客户端脚本基本是基于 Javascript, 所以如果想要深入研究 XSS,必须要精通 Javascript。

xss 漏洞出现原因
程序对输入和输出的控制不够严格,导致 "精心构造" 的脚本输入后,在输出到前端时被浏览器当作有效代码解析执行从而产生危害.

xss 分类
反射型:

与服务端交互,但是交互的数据一般不会被存在数据库中,一次性,所见即所得,一般出现在查询类页面等。

存储型:

交互的数据会被存在数据库中,永久性存储,一般出现在留言板,注册等页面。

DOM 型:

不与后台服务器产生数据交互,是一种通过 DOM 操作前端代码输出的时候产生的漏洞,大部分属于反射型,少部分属于存储型。

关于非持久型,持久型,Dom 型 xss

非持久型 xss 攻击:顾名思义,非持久型 xss 攻击是一次性的,仅对当次的页面访问产生影响。非持久型 xss 攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。

持久型 xss 攻击:持久型 xss,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。而 Dom 型 xss 属于有可能是持久也可能是非持久型。

xss-labs 关卡
第一关
?name='"<> 后查看源代码
m2442ur4.png
没有任何防范
使用

'"><script>alert('jaden');</script>

闭合
m24448zm.png
第二关
发现是输入框输入 '"<> 测验发现
m2444mgd.png
没有防范观察输入

'"><script>alert('jaden');</script>

闭合

第三关
输入 '"<> 后源代码中发现再 input 中且"<> 被实体化
m2445g3o.png
不能使用 <> 闭合所以观察 input 事件

'" onblur='alert(123)'  
// 或者
'" onBlur=javascript:alert('jaden')

m24462ee.png
成功闭合执行 alert (123)

第四关
这一关同样不能使用 script 闭合
查看源代码使用双引号闭合

'" onblur='alert(123)'  
// 或者
'" onBlur=javascript:alert('jaden')

m2446q89.png
闭合成功点击搜索即可执行 alert (123)

第五关
第五关输入以上代码尝试发现 on 被绕过 o_n,script 也被绕过,大小写绕过也不可行

那么我们就可以考虑直接去闭合整个 input 标签,自己再添加上个 a 标签,a 标签中使用 javascript 伪协议来指定 js 代码执行。

 '"><a href='javascript:alert("jaden")'>jaden</a>

m2447pks.png
m2447tte.png
成功执行代码点击 jaden 链接
m24485q3.png
第六关
第六关发现同样 script 和 on 被绕过

另外 href 也被绕过 所以使用大小写发现没有被绕过
所以

'"><a HreF='javascript:alert("jaden")'>jaden</a>

m24491ay.png

83

评论 (0)

取消
歌曲封面
0:00