zoukankan      html  css  js  c++  java
  • xss攻击

     公司近日又被攻防演练中心扫出漏洞,这次不是注入(injection),而是什么xss,一时很懵,不知道是个啥玩意。

    xss(reflect)

    报文:

    GET /login.jsp?doWhat=viewSharedDoc&documentid=121864"><script>alert(7146)</script> HTTP/1.1

    Host: xxxxxx

    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; rv:11.0) like Gecko

    Accept: */*

    Accept-Encoding: gzip, deflate

    Referer: http://xxxxxxx/?doWhat=viewSharedDoc&documentid=121864

    Cookie: csweb-8000-PORTAL-PSJSESSIONID=0DJCEypyZmrkITtxaZ9P3ynrBOo5DvO7!-2068434490; PS_TOKEN=pwAAAAQDAgEBAAAAvAIAAAAAAAAsAAAABABTaGRyAk4Acwg4AC4AMQAwABRrJffFias/y+LnV/kcJcea8ndB/2cAAAAFAFNkYXRhW3icJYo7DkBQFAXHJ0qFfRA8ggU8RCHi02jeImzP4hzcYuZMci8gDHzPk2+f75KTiQPHIFo2diLLrIwXVa92jKxUJTkFHan8sqD92JBRU4n/NvK7jP54AOmmDJ4=; SignOnDefault=ZJU_GUEST; PS_TOKENEXPIRE=18_Sep_2019_01:53:35_GMT; JSESSIONID=3F488447A3EF5DA1FFCB83C9C1082CF3

    Accept-Language: zh-cn

    截图

     

     经过度娘一番学习,才知道它是 Cross Site Scripting 跨站脚本的意思,它的攻击主要分三种:

    一是通过URL带参数的GET方式,将参数中加入脚本,我们这次被扫出的就是这种情况,如: /login.jsp?doWhat=viewSharedDoc&documentid=<script>alert(7146)</script>。这种方式也称为“反射型”。

      经测试,IE11及Chrome会自动屏蔽这类攻击,但火狐firefox仍能执行:

       

    二是通过提交功能(如评论、留言、回复之类)将脚本上传并存储到服务器,以后每个人访问都被会执行,这是个一劳永逸的好办法。还可以上传一些诱人图片来伪装,老年人最容易上当的那种:

      <img onclick="window.location.href='http://xxxxxxx'" width='300' src='img/flower.jpg'/>

    三是不经过服务器处理,而是在前端实时经js解析DOM造成的。

    造成的危害主要有:

    1.盗取cookie:

      如在textarea之类的里面输入:<img src="null" onerror='alert(document.cookie)' />

    2.通过css破坏结构和显示样式

    3.重定向劫持流量

    4.占用服务器资源,造成正常访问缓慢

    5.通过iframe、frame、XMLHttpRequest或Flash等方式,执行管理动作,或盗发微博、私信,好友等

    6.利用被攻击的域,以受信来源访问其他网站,执行不允许一般来源网站执行的操作。

    如何防范

    1.控制参数格式:过滤字符onerror,onclick, <iframe>, <frame>, <script>,<a>之类;对参数进行编码和长度限制;

    2.保护cookie:设置httponly为true。

    参考文章:

    https://www.cnblogs.com/mao2080/p/9460397.html

  • 相关阅读:
    查找并拷贝目录中指定文件到某个文件夹
    TPS和QPS的概念
    50道 Redis常见面试题,干货汇总
    面试题:写一个死锁示例
    MySQL聚集索引与辅助索引的区别
    Java进阶知识点:接口幂等性
    测试网络联接状况常用命令 ping 使用方法介绍
    服务路由、负载均衡和服务配置中心的基本概念
    利用堆排序和分治法求解千万级数据排序的Top K问题—百度面试
    创建Spring Boot项目时,提示 Cannot download 'https://start.spring.io'
  • 原文地址:https://www.cnblogs.com/wildorchid/p/11576885.html
Copyright © 2011-2022 走看看