码迷,mamicode.com
首页 > 其他好文 > 详细

pikachu XSS

时间:2019-12-27 10:07:01      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:正则匹配   管理   长度   字符转换   nbsp   tin   pat   存储   页面   

XSS(跨站脚本)概述Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
    1.反射性XSS;
    2.存储型XSS;
    3.DOM型XSS;

XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
  输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
  输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

攻击流程

    假设存在漏洞的是一个论坛,攻击者将恶意的JS代码通过XSS漏洞插入到论文的某一页面中

    当用户访问这个页面时,都会执行这个恶意的JS代码,这个代码就会在用户的浏览器端执行

XSS攻击类型

危害:存储型 > 反射型 > DOM型

  • 反射型:交互的数据一般不会被存在数据库里面,一次性,所见即所得,一般出现在查询页面等
  • 存储型:交互的数据会被存在数据库里面,永久性存储,一般出现在留言板,注册等页面
  • DOM型:不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性,也属于反射型

XSS形成原因

    形成XSS漏洞的主要原因是程序中输入和输出的控制不够严格

    导致“精心构造”的脚本输入后,在输出到前端时被浏览器当作有效代码解析执行

XSS漏洞测试流程

    ① 在目标上找输入点,比如查询接口、留言板

    ② 输入一组 “特殊字符(>,‘,"等)+唯一识别字符” ,点击提交后,查看返回源码,看后端返回的数据是否有处理

    ③ 通过搜索定位到唯一字符,结合唯一字符前后语法确定是否可以构造执行js的条件(构造闭合)

    ④ 提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞

 

1、反射型xss(get)

试了试,发现长度限制,改源码

技术图片

 

URL中改

技术图片

 

弹窗

技术图片

 

 

 

二、反射性xss(post)

 

用户名admin 密码弱口令123456 看出post提交而不是URL,那就文本框里提交嘛。弹窗

技术图片

 

三、存储型XSS

随便上传点东西,砍砍源码

 

 技术图片

 

 

 不过滤是吧..那就<img src=http://1.html onerror=alert(‘1‘)>

技术图片

 

 

 四、DOM型XSS

F12。check me之对应。

技术图片

 

 

 提醒到脸上..

技术图片

 

 

 payload 构造 ‘><img src="#" onclick="alert(‘xss‘)">

 技术图片

 

 

 五、DOM型XSS-X

F12。

技术图片

 

 

 继续提示上脸,同理可得。

技术图片

 

六、XSS之盲打

 

技术图片

 

 

 

技术图片

 

 

 emmm上传到了后端,打的是管理员,直接

<script>alert(‘Pikachu‘)</script>

技术图片

 

 

 admin 登录下,弹窗

技术图片

 

 

 七、XSS之过滤

难道滤掉了<>

技术图片

 

 

尝试绕过后端对上传文本的重放,这里是大小写正则匹配的漏洞

 payload:<SCrIPT>alert(1)</ScRiPt>

技术图片

 

 

 八、XSS之htmlspecialchars

关于htmlspecialchars()函数

    htmlspecialchars()是PHP里面把预定义的字符转换为HTML实体的函数

    预定义的字符是

  • & 成为 &amp
  • " 成为 &quot
  • ‘ 成为 &#039
  • < 成为 &lt
  • > 成为 &gt

    可用引号类型

  • ENT_COMPAT:默认,仅编码双引号
  • ENT_QUOTES:编码双引号和单引号
  • ENT_NOQUOTES:不编码任何引号

转义了当然执行不了

技术图片

 

 

尝试了下,单引号没有被过滤。其实记录在了href里,那超纲一下。

 技术图片

 

‘javascript:alert(1)‘

技术图片

 

 九、XSS之href输出

直接来

payload:javascript:alert(1)

技术图片

 

 十、XSS之JS输出

常规<script>alert(1)</script>,无

技术图片

 

 还有一层,故payload

‘</script><script>alert(‘xss‘)</script>

技术图片

pikachu XSS

标签:正则匹配   管理   长度   字符转换   nbsp   tin   pat   存储   页面   

原文地址:https://www.cnblogs.com/P201721440006/p/12105315.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!