攻击者在网页中嵌入恶意脚本代码(javascript),当用户使用浏览器浏览网页时,脚本就会在用户的浏览器上执行,从而达到攻击者目的。
二、原理本质:可控变量,显示输出变量。代码在对数据进行显示出现的安全问题。——js代码
产生层面:前端。
函数类:输出型函数。
危害影响:受js代码影响。
浏览器内核版本:受对方浏览器版本限制,可能带有过滤。
(1)窃取管理员帐号或cookie。入侵者可以冒充管理员的身份登录后台。使得入侵者具有恶意 *** 纵后台数据的能力,包括读取、更改、添加、删除一些信息。
(2)网站挂马。先将恶意攻击代码嵌入到Web应用程序之中。当用户浏览该挂马页面时,用户的计算机会被植入木马。
(3)发送广告或者垃圾信息。攻击者可以利用XSS漏洞植入广告,或者发送垃圾信息,严重影响到用户的正常使用。
(4)重定向
非持久化,一般需要用户手动点进去攻击者伪造好的链接才能触发代码
2.存储型XSS持久性,攻击者的XSS语句存储在服务数据库,当有受害者访问这个网页都会触发代码,一般在留言板,评论区页面经常出现。
3.DOM型XSSDOM型xss与上面两种最大的区别就是,dom型xss漏洞是基于文档对象模型(Document Object Model,DOM)的,它不需要经过后端,它是在浏览器解析渲染服务器源码的时候产生的,所以我们在抓包的过程中是看不到dom型xss有关的内容的。
五、靶场练习 pikachu靶场 1. 反射型XSS(get)在没有过滤的情况下在提交参数中插入XSS语句,页面会出现一个d窗,并且再次访问该页面时网站不会出现d窗。
输入语句:
<script>alert(‘xss’)</script>
输入的语句本来是显示在页面上的,其为js代码,浏览器将其执行,d窗回显"xss":
登录:用户admin 密码123456
成功登录:
之后的 *** 作和反射型xss(get)一致
代码会存储在数据库中,访问该网页会一直触发XSS代码。
输入语句:
<script>alert(‘xss’)</script>
点击提交,出现d窗"xss":点击确定:
之后一直点击submit(访问该网页),就会一直回显xssd窗(一直执行输入的代码)
可以看到我们输入的参数使用burp抓包没有抓到,说明DOM型XSS,只在前端产生。
输入语句:
<script>alert(‘xss’)</script>
并没有回显,查看:
输入的语句被当作超链接了
查看页面源代码:
输入语句:'onclick=“alert('xss')”>
,出现d窗:
onclick 事件会在对象被点击时发生,然后d出我们的xss
注:遇到输入语句会被当作超链接的,即需要点击才可以回显,那么就要引入onclick事件(用法:οnclick=“”)
同样输入
查看:
发现输入语句还是被当作超链接。
输入
'οnclick="alert('xss')">
点击链接,出现d窗:
XSS盲打简单来说,就是不知道后台有没有xss漏洞存在的情况下,不顾一切的输入xss代码在留言,反馈之类的地方,就叫盲打
首先还是老办法,输入常用语句:
<script>alert(‘xss’)</script>
提交:
并没有回显
估计是上传到后台去了,看看小贴士
输入用户密码(admin 123456)登录后台:
回显了!
输入常用语句,发现语句并没有被执行,被过滤掉了。
试一下大小写绕过的方法:输入
<sCriPt>alert('xss')</ScrIpt>
回显了!
8.xss之htmlspecialcharshtmlspecialchars会过滤一些字符 首先老方法:
没回显,而且查看代码发现<和>都被过滤了,而且又是被当作超链接。(其实在这之前可以先输入常用的特殊字符,查看代码看是否被过滤。)
可以看出这里是对单引号不转义
从php代码可以看到默认不对单引号做处理,也写着输入’onclick=’alert(111)’
试试
所以还是用之前的onclick事件:
回显了!
老样子输入还是被当作超链接
用onclick事件:
还是不行
从代码提示可以使用javascript协议来执行js
输入javascript:alert(‘xss’)
,可以看到没有任何过滤,成功d窗
可以看出将我们输入的字符存到了js代码里面然后进行判断,写一个闭合
'</script><script>alert(/xss/)</script>
回显了!
六、xss平台的使用注册登录,创建项目test,并配置:
会出现:
将代码写入到pikachu靶场的xss漏洞部分,出现d窗:
平台获取到cookie信息:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)