XSS漏洞

原理

  • 程序对输入和输出没有做合适的处理,导致恶意字符输出在前端时被浏览器当作有效代码解析执行
  • 后端代码将用户输入的字符当成了js代码去执行

xss常用代码

  • < script>alert(/xss/)
  • onclick='alert(1)'
    • onclick 属性是 HTML 元素中的一个事件属性,它用于指定在元素被点击时执行的 JavaScript 函数。
  • < a href='javascript:alert(1)' >
    • 引用a标签超链接 href 属性使用了 JavaScript 伪协议来执行 JavaScript 代码。点击超链接时执行 alert(1) 。

1.xss漏洞的三种形式

- 01.DOM型:

  • 浏览器与服务器没有交互,浏览器去另一个浏览器
  • 直接在url中添加代码

- 02.反射型 :

  • 通过引用一个链接来引诱用户点击链接到一个恶意链接来实施攻击
  • 浏览器与服务器有交互
  • 常见利用在搜索框
  • 服务器将浏览器的输入原样返回给了浏览器,==服务器不做操作==
    • 搜索框输入 123 页面会回显123
      image.png

如何查看服务器是否返回了原样内容

  • 在搜索框内随意输入一串字符 如:cvbhnjkmgvhjkl
  • ctrl+u查看网页源代码 ctrl+f搜索刚才查询的字符看是否一致

- 03.存储型 :

  • 当一个页面存在存储型xss的时候,插入的恶意代码会存储到数据库中。任何人当访问此页面的时候,web程序会从数据库中取出恶意代码插入到页面,导致浏览器出发xss。
  • 常利用在评论,论坛,邮件系统等有多用户交互的环境中。
  • **浏览器与服务器有交互
  • **会把前用户上传的内容存储到数据库中,并且以后任何用户访问该网页都会显示内容**
    image.png

2. js代码思路

  • 在前端页面中,script标签中的代码一定是js代码
  • 但是js代码不一定必须在script标签中
  • js运行环境是浏览器

3. xss漏洞的危害

- cookie盗取

  • 站点重定向
  • XSS蠕虫
  • 获取客户端页面信息,例如邮件的内容窃取

4. 绕过方法

  • onclick属性
    • onclick 属性是 HTML 元素中的一个事件属性,它用于指定在元素被点击时执行的 JavaScript 函数。
    • onclick='alert(1)'
  • javascript伪协议绕过
    • < a href='javascript:alert(1)' >
    • 引用a标签超链接 href 属性使用了 JavaScript 伪协议来执行 JavaScript 代码。点击超链接时执行 alert(1) 。
  • 大小写绕过
    • < a hRef='javascript:alert(1)' >
  • 双写绕过
    • alert(/xss/)
  • javascript伪协议实体编码绕过
    • 十进制编码
    • 尝试 javascript:alert(1)   ( 将javascript 末尾的 t  进行了十进制转码 )
      • javascript:alert(1)
        这里发现又新添加了一个函数  strtolower     含义就是将写入的字符中的所有大写全部转化为小写
    • 过滤下列关键字
      • "script","scr_ipt"
      • "on","o_n"
      • "src","sr_c"
      • "data","da_ta"
      • "href","hr_ef"
      • '"','&quot'     
        javascript:alert(1)将t编码后script就不会被过滤
posted @ 2024-03-24 21:05  XingZin  阅读(55)  评论(0)    收藏  举报