[xss漏洞]反射型,存储型,DOM型XSS
2022/4/3 6:21:51
本文主要是介绍[xss漏洞]反射型,存储型,DOM型XSS,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
反射型
XSS的本质是没有对用户输入进行过滤,让我们可以通过输入javascript语句的方法更改网页
get类型
判断:
如果对于任意输入内容,网页都原封不动地把输入内容返回,这里就可以考虑有反射型XSS(尤其关注特殊符号<>?#&666等)
过程:
为了在输入框中输入javascript语句,通常我们需要对输入框最大输入限制进行调整,打开浏览器的开发者页面,使用选择器选择输入框,将限制调大
//将javascript语句输入到输入框,比如 <script>alert('sb')</script>
提交后,就可以弹窗显示了
唯一的限制是你的想象力
get类型的话,url上就会有插入的javascript语句,这时如果利用用户对原网站的信任,使其点击此时的url,实际上就会运行插入的javascript语句
POST类型
判断:
post类型是以表单的形式在请求体中提交的
存储型
判断:
同其他
过程
同其他
由于存储型的XSS漏洞所插入的语句上添加到数据库中的,所有进入这以页面的人都会中招,危害较大
DOM型
什么是DOM
DOM通俗来说就是javascript访问,改变HTML的一种办法
靶场里的xssDOM的代码是:
<script> function domxss(){ var str = document.getElementById("text").value; document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>"; } //试试:'><img src="#" onm ouseover="alert('xss')"> //试试:' onclick="alert('xss')">,闭合掉就行 </script> <!--<a href="" onclick=('xss')>--> <input id="text" name="text" type="text" value="" /> <input id="button" type="button" value="click me!" onclick="domxss()" /> <div id="dom"></div>
点击按钮后会将text的内容添加到id为dom的div中
靶场中的dom是纯前端的操作,没有进行对用户输入的过滤
通过输入脚本利用漏洞
首先确定我们需要的利用:
比如弹个窗
原来的语句是:我们将插入的语句是str位置
<a href='"+str+"'>what do you see?</a> //实际是第一对单引号内 <a href=''>what do you see?</a>
<a href='"+str+"'>what do you see?</a>
构建闭合,我们需要的效果是
<a href='#' onclick="alert(111)">'>what do you see?</a> //href='#'是无意义的,跳转到当前页面
所以我们要在框框中输入
#' onclick="alert(111)">
点击后就可以弹窗了
这DOM型好像没什么用
- 不能存储在url中发送给别人
- 不能存储在后台
DOM型还是有用的
靶场中的DOM型xss-x的代码逻辑是
<script> function domxss(){ var str = window.location.search; var txss = decodeURIComponent(str.split("text=")[1]); var xss = txss.replace(/\+/g,' '); // alert(xss); document.getElementById("dom").innerHTML = "<a href='"+xss+"'>就让往事都随风,都随风吧</a>"; } //试试:'><img src="#" onm ouseover="alert('xss')"> //试试:' onclick="alert('xss')">,闭合掉就行 </script> <!--<a href="" onclick=('xss')>--> <form method="get"> <input id="text" name="text" type="text" value="" /> <input id="submit" type="submit" value="请说出你的伤心往事"/> </form> <div id="dom"></div>
.replace(/+/g,' ');//是正则表达式替换,/ /内是正则的作用范围,\是转义,g表述全部替换,整体的意思是将+号全部替换为空格
可以看到这个逻辑是以get在url中传递的,这样我们就可以使用url传递恶意代码了,操作同上几个笔记
- 框框里输入插入的代码
- 提交后就能在url中看到变化了
DOM型xss的启示
前端开发的方式(人)千奇百怪,不能说某种漏洞就一定是无效的
这篇关于[xss漏洞]反射型,存储型,DOM型XSS的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-09必试!帮 J 人团队解决物流错发漏发的软件神器!
- 2025-01-09不容小觑!助力 J 人物流客服安抚情绪的软件!
- 2025-01-09为什么医疗团队协作离不开智能文档工具?
- 2025-01-09惊叹:J 人团队用啥软件让物流服务快又准?
- 2025-01-09如何利用数据分析工具优化项目资源分配?4种工具推荐
- 2025-01-09多学科协作难?这款文档工具可以帮你省心省力
- 2025-01-09团队中的技术项目经理TPM:工作内容与资源优化策略
- 2025-01-09JIT生产管理法:优化流程,提升竞争力的秘诀
- 2025-01-092024全球互联网流量分析报告
- 2025-01-09如何提升学校行政管理中的进度追踪效率?4个实用策略和3款工具推荐