码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • xss跨站脚本攻击


    本文是对xss跨站脚本攻击的相关介绍,希望这篇文章能让你不仅有一定的收获,而且可以愉快的学习,如果有什么建议,都可以留言和我交流

    1.xss定义

    XSS全称(Cross Site Scripting)跨站脚本攻击,XSS属于客户端攻击,受害者最终是用户,但特别要注意的是网站管理人员也属于用户之一。这就意味着XSS可以进行“服务端”攻击,因为管理员要比普通用户的权限大得多,一般管理员都可以对网站进行文件管理,数据管理等操作,而攻击者一般也是靠管理员身份作为“跳板”进行实施攻击。
    XSS攻击最终目的是在网页中嵌入客户端恶意脚本代码,最常用的攻击代码是javascript语言,但也会使用其它的脚本语言

     2.xss的原理 

     参数给变量未经过滤直接输出,输出的时候没有进行html实体编码

    3. xss的分类 

    • 反射性(中危漏洞)

    交互的数据一般不会存在数据库里面,只是把用户输入的数据反射给浏览器,一次性,所见即所得

    再次点击反射型显示

    • 存储型(高危漏洞)

     交互的数据存储在数据库里面,永久性存储,具有很强的稳定性

    以后每次点击存储型会显示

    • DOM型(高危漏洞)

    不与后台服务器产生交互的数据,通过前端的DOM节点形成xss漏洞

    a标签  what do you see?

    4.可能存在xss漏洞的地方 

    有输入的地方

    有更新的地方

    有留言的地方

    有对话框的地方 

    5.xss攻击的危害

    • 劫持用户的cookie

     攻击者要有xss平台   语句为  +document.cookie;

     现在的cookies没有东西

    首先配置cookies

    http://10.0.0.130:91/pikachu/vul/xss/xssblind/admin.php  要在这里查看弹出的地方有xss漏洞

    http://10.0.0.130:91/pikachu/vul/xss/xssblind/admin_login.php

    http://10.0.0.130:91/pikachu/vul/xss/xssblind/admin_login.php

    1111'">

    • 框架钓鱼

    改ip和路径

    输入钓鱼语句

    出不来清除cookies

    再次点击存储型不出现对话框,将cookies清除掉再次点击存储型,出现登录页面

    • 键盘记录 

     

    在页面随便输入都会被记录

    6.同源策略
        

    • 什么是跨域

    当协议、主机(主域名,子域名)、端口中的任意一个不相同时,称为不同域。我们把不同的域之间请求数据的操作,成为跨域操作。
    例:

    http:// www.   baidu.com  :80 /   news/index.php
    协议     子域名    主域名  端口    资源地址
    https:// www.  baidu.com  :80
    http:// www.baidu.com  :80      协议不同
     http:// vip  .baidu.com  :80
    http:// www. baidu.com  :80   二级域名不同
    http:// www. baidu.com  :80
    http:// www.baidu.com  :82   端口不同

    •  同源策略

    为了安全考虑,所有浏览器都约定了“同源策略”,同源策略禁止页面加载或执行与自身来源不同的域的任何脚本既不同域之间不能使用JS进行操作。比如:x.com域名下的js不能操作y.com域名下的对象那么为什么要有同源策略? 比如一个恶意网站的页面通过js嵌入了银行的登录页面(二者不同源),如果没有同源限制,恶意网页上的javascript脚本就可以在用户登录银行的时候获取用户名和密码。
    不同域之间不可以相互操作js

    • 不受同源策略阻止


        正常输入不弹出框1111'"> 

      '">

     拼凑绕过/双写

     ript>alert('你打篮球像oldboy')ipt>
    注释干扰后台绕过
    ript>alert('你打篮球像oldboy')ipt>
     换html标签
     111'">
        
     

     
     
     CLICK  
     
      
              

    • 如果alert被过滤掉

    可以换函数
       
    拆分法
     替换
    111'">
    111'">
    编码
     111'">
    解码为yangshuang(alert英文要用单引号引起来)

    • htmlspecialchars()函数
    •  htmlspecialchars()函数的作用

            把一些预定义的字符转换为 HTML 实体。
           干掉单引号双引号尖括号
     预定义的字符
    & (和号)成为 &
     " (双引号)成为 "
     ’ (单引号)成为'
     < (小于)成为 <
     >(大于)成为 >

    •     原理

    htmlspecialchars() 函数把预定义的字符转换为 HTML 实体,从而使XSS攻击失效。但是这个函数默认配置不会将单引号和双引号过滤,只有设置了quotestyle规定如何编码单引号和双引号才能会过滤掉单引号

    •     htmlspecialchars()函数配置参数

            采用实体html编码,怎末绕过
           ENT_COMPAT - 默认。仅编码双引号 没有双引号可绕过)
                    q' οnclick='alert(111)'

     ENT_QUOTES -( 编码双引号和单引号a标签可绕过) 所有的单引号双引号尖括号上面的预定义字符都干掉的时候,直接输入到a标签绕过
     ENT_NOQUOTES - 不编码任何引号

    •     xss之href输出绕过

            javascript:alert(1111)

     直接代入a标签herf里面一样可以绕过htmlspecialchars
     
     

    • xss之js输出绕过

     2'
            
     ctrl+f  

         

      2'

     8.XSS常规防范

    对输入进行过滤,对输出进行html实体编码
    过滤单引号、双引号、尖括号、script、alert

    9.跨站跟踪攻击

        即CST攻击,是一种利用XSS和HTTP TRACE功能来进行攻击的方式。
        浏览器有一个安全策略,通过设置cookie的httponly属性,这样客户端脚本就不能通过document.cookie访问该cookie,即使有XSS漏洞,也不能盗取用户cookie。这个时候就可以利用HTTP TRACE方法来获取到用户的cookie信息。
        实战
            1.burp抓包
            2.修改get/post请求头为TRACE
                TRACE作用:客户端发起一个请求时,这个请求可能要穿过防火墙、代理、网关或其他一些应用程序。每个中间节点都可能会修改原始的 HTTP 请求。TRACE 方法允许客户端在 最终将请求发送给服务器时,看看它变成了什么样
            3.修改请求包中的任意一个字段
                 Cookie:
            4.修改响应包中的显示类型
                将Content-Type:message/http 改为 Content-Type:text/html Cookie 

  • 相关阅读:
    java中的lambda表达式
    深度解析:抢单模式,逆向的商业模式策略
    基于微信小程序的食堂窗口自助点餐系统设计与实现-计算机毕业设计源码和lw文档
    IIS配置优化
    【Vue-Element】好用的音频组件
    EF Core学习笔记:基本的流程
    JavaWeb-JavaScript
    关于mpy电压采集模块的那些事儿(ads1256 ads8688 ad7606)
    谈谈什么是数据质量管理
    Redis之String类型
  • 原文地址:https://blog.csdn.net/2301_79194110/article/details/133020290
    • 最新文章
    • 攻防演习之三天拿下官网站群
      数据安全治理学习——前期安全规划和安全管理体系建设
      企业安全 | 企业内一次钓鱼演练准备过程
      内网渗透测试 | Kerberos协议及其部分攻击手法
      0day的产生 | 不懂代码的"代码审计"
      安装scrcpy-client模块av模块异常,环境问题解决方案
      leetcode hot100【LeetCode 279. 完全平方数】java实现
      OpenWrt下安装Mosquitto
      AnatoMask论文汇总
      【AI日记】24.11.01 LangChain、openai api和github copilot
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
    正则表达式工具 cron表达式工具 密码生成工具

    京公网安备 11010502049817号