`

浅谈XSS(二)

 
阅读更多

前面我们说到了反射性XSS的发掘,里面涉及了很多javascript的东西,也许有些孩童们看不懂里面的代码到底是什么回事。今天,我们就来认识一下什么是javascript。首先说之前要说明一点,javascript和Java半毛钱关系都没有,不要认为有一个Java就和Java有关,Javascript是一种由Netscape的LiveScript发展而来的一种客户端脚本语言。

     在javascript是一种弱语言,没有强制的定义。

    javascript一般存在于网站的html中的script标签中

     首先,我们来介绍一下什么是var,var是JS(javascript的简称)中的变量。变量是存储信息的容器 
,var简单的说就是一个壶,我们可以将东西放在里面,例如字符串,数字等。 
     var  a="123" (变量a中存储字符串123,一般带引号的都是字符串,变量的引号可以分为单引和双引。如果var a="a"a”。那么后面的a"将不被执行,而程序报错,因为这是程序不认可的,如果是这样var a="a";//a",那么程序将会执行a赋值为a,然后结束掉。然而//a"程序将他们视为注释,也就是解释,不会被执行。所以我们在跨站当中,如果碰到var a="传递的参数"这样。只要没过滤掉"那么,将会被执行js语句。例如:var a="a";alert('xss')//aa",程序自然会执行变量a赋值a。然后结束,再执行弹出xss字符,之后程序结束)
     var  a=123(变量a中存储数字123) 
     如果是

<script>
 var  a="123"
 var  b=a
</script>

 

(这条语句是创建变量a并给他赋值数字123,然后再创建变量b,让a的值传递给b,在javascript中=是赋值作用而不是数学的相等,而==才是相等)

   IF,判断语句,在js中的写法:

<script>
var a="王三";
if(a=="王三")
{
alert("您好"+a)
}else{
 alert("欢迎光临")
}
</script> 

 


这是什么意思呢?

首先我们来分析 var我们之前说过是创建变量a,然后赋值字符串王三。

然后继续进行判断,a是否等于王三。如果是就会弹出您好+a,有些人会问+a是什么呢?+号在js中可以说相加,可以说连接,在这里我们用的是连接的意思,也就是说您好+a(相连的是a中的字符串"王三")所以弹出的框中显示的是您好,王三,else又是什么意思呢?else就不成立的时候执行的语句,如果不成立,那么我们将会干嘛。 

如果,当你碰到这样的一个js中包含着你所填写的参数或者字符串的时候,你要看他是否存在else,如果存在,这个程序将无法执行xss,因为他执行了两个传参,第一,在var a="传参"  第二 if(a=="传参"),这只是如果,但是还有一种可能性,也就是当你输入测试aaa的时候发现if中的判断的内容没有改变的时候,那么,就将产生XSS。 

eval:eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。例如:

<script> 
var a="alert('a')"
 eval(a)
</script> 

 

按照刚才我们的思路, 我们来分析一下这个程序,首先,我们创建a变量然后进行"alert('a')"的赋值,然后eval执行了a。那么eval是什么呢?在解释中我们已经提到了,eval并执行其中的javascript代码。

我们放入eval中的javascript代码是什么呢?是"alert('a')"也就是将alert变为javascript程序执行,也就是说,他不是字符串形式了,而是obj形式。在跨站中也有不少这样的东西出现,大家理解了就好分析程序,利用大家强大的想象力去构造一些更好的JS程序进行跨站。

提醒:在javascript中是支持unicode和base16转码的。例如我要这样写document.write('<script>alert('xss')</script>')也就是输出<script>alert('xss')</script>内容,如果程序过滤了script和alert怎么办?我们可以用这样的形式绕过 

document.write('\x3c\x73\x63\x72\x69\x70\x74\x3e\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e')

 


document.write('\u003c\u0073\u0063\u0072\u0069\u0070\u0074\u003e\u0061\u006c\u0065\u0072\u0074\u0028\u0027\u0078\u0073\u0073\u0027\u0029\u003c\u002f\u0073\u0063\u0072\u0069\u0070\u0074\u003e')

 

他们执行出来的结果是一样的,都是弹出一个XSS,嘿嘿,大家知道我想说什么……

转自:http://anquan.baidu.com/bbs/thread-130627-1-1.html

分享到:
评论

相关推荐

    浅谈跨网站脚本攻击(XSS)的手段与防范(简析新浪微博XSS攻击事件)

    1.什么是XSS2.XSS攻击手段和目的3.XSS的防范4.新浪微博攻击事件跨网站脚本(Cross-sitescripting,通常简称为XSS或跨站脚本或跨站脚本攻击)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将...

    07-XSS之攻击与防御1

    1、论安全响应中心的初衷 2、安全应急响应中心之威胁情报探索 3、论安全漏洞响应机制扩展 4、企业级未授权访问漏洞防御实践 5、浅谈企业SQL注入漏洞的危害与防

    浅谈React 属性和状态的一些总结

    一、属性 1、第一种使用方法:键值对 &lt;ClaaNameA xss=removed&gt; ...2、第二种方法:三个点的展开对象形式 var props = { one :”123”, tow :321 } 增加三个引号相当于这里面拿到两个属性了(one和two) 3、s

    浅谈利用JavaScript进行的DDoS攻击原理与防御

    主要介绍了浅谈利用JavaScript进行的DDoS攻击原理与防御,以及介绍了相关的中间人攻击原理,需要的朋友可以参考下

    PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)

    浅谈Php安全和防Sql注入,防止Xss攻击,防盗链,防CSRF 前言: 首先,笔者不是web安全的专家,所以这不是web安全方面专家级文章,而是学习笔记、细心总结文章,里面有些是我们phper不易发现或者说不重视的东西。所以...

    浅谈php冒泡排序

    PHP实现的代码先奉上: 复制代码 代码如下: function bubble_sort($array) {  for ($i = 0; $i &lt; count xss=removed&gt; $array[$j + 1]) { //按升序排序  $temp = $array[$j];

    浅谈jquery中使用canvas的问题

    使用jquery控制canvas的时候会出现一些问题, var cas=document.getElementById('canvas').getContext('2d');//这个是使用JavaScript的...&lt;span xss=removed&gt; &lt;/span&gt;//出现问题,对象获取不到getContext()方法 cas.f

    浅谈ASP.NET MVC应用程序的安全性

    前言:保护Web应用程序的安全性看起来时间苦差事,这件必须要做的工作并不能带来太多的... 1)服务器组件对显示的值和特性进行HTML编码,以帮助阻止XSS攻击。  2)加密和验证试图状态,从而帮助阻止篡改提交的表单。  

    浅谈vue 多个变量同时赋相同值互相影响

    首先,该项目用到了element-ui中的Tabs 标签;然后来龙去脉是酱紫的: ...&lt;el tab-position=left xss=removed&gt; (itema,index) key=itema.id label=itema.title value=itema.id&gt; &lt;ul class=bill_s

    浅谈js中的attributes和Attribute的用法与区别

    一:Attribute的几种用法和含义(attributes和Attribute都是用来操作属性的) getAttribute:获取某一个属性的值; setAttribute:建立一个属性,并同时给属性捆绑一个... &lt;div xss=removed&gt;&lt;input type = "hidden

    浅谈Vue Element中Select下拉框选取值的问题

    之前写了.一个原生的select的,因为展示效果原因,给删除掉了,忘记保存代码了,现在大家展示使用elementUI的下拉框封装一个... &lt;el xss=removed disabled=true value=null&gt; &lt;span xss=removed&gt;周次 &lt;span style

    浅谈vue获得后台数据无法显示到table上面的坑

    &lt;tr xss=removed&gt; &lt;td&gt;{{user.id}} &lt;td&gt;{{user.name}} &lt;td&gt;{{user.gender}} 然后先是写了这样一个代码 created: function () { axios.get(http://localhost:8080/student/findAll).then(function ...

    浅谈html5与APP混合开发遇到的问题总结

    背景 在公司参与一个原生APP和h5混合开发的项目,本人在项目中负责h5部分,现将项目中遇到的问题总结如下: 具体问题 问题1:页面滚动条问题 ... &lt;div xss=removed&gt; //网页内容 &lt;/body&gt; 问题2:t

    浅谈Vue render函数在ElementUi中的应用

    vue的render函数在日常开发中被广泛应用,今天以ElementUI中的table表头重构...&lt;el data=tableData xss=removed border=true&gt; 日期 min-width=20% align=center&gt; &lt;el-table-column prop=name label=姓名 min-wi

    浅谈javascript函数劫持[转自xfocus]第1/3页

    一、概述 javascript函数劫持,也就是老外提到的javascript hijacking技术。最早还是和剑心同学讨论问题时偶然看到的一段代码,大概这样写的: window.alert = function(s) {}; 觉得这种用法很巧妙新颖,和API Hook...

    php 防止单引号,双引号在接受页面转义

    您可能感兴趣的文章:简单概括PHP的字符串中单引号与双引号的区别PHP中单引号与双引号的区别分析PHP 单引号与双引号的区别php 输出双引号"与单引号”的方法PHP的单引号和双引号 字符串效率浅谈PHP中单引号和双引号...

    1.初探安全.pptx

    浅谈渗透测试前的信息收集 00:34:39 【五、漏洞讲解】 1.文件泄露 00:08:01 2.SQL注入 00:42:41 3.XSS 01:05:58 4.CSRF 00:21:27 5.暴力破解 00:32:11 6.文件上传 00:22:40 7.逻辑漏洞 00:07:47 【六、漏洞扫描工具...

Global site tag (gtag.js) - Google Analytics