浅谈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,嘿嘿,大家知道我想说什么,好了,每天吸收一点点
,不需要太多,慢慢积累,慢慢实战才是王道,今天就到这,我们下次再见
>更多相关文章
- 11-15不看后悔!程序员防御XSS的无奈
- 11-10揭秘Web黑客3种注入点判断方法
- 11-10黑客Web脚本注入攻击深度剖析
- 10-21全球无线网络面临黑客攻击风险 WiFi曝安全漏洞
- 02-24iPhone再爆安全漏洞 黑客1分钟可盗照片及加密信息
- 02-22互联网金融风险 警示网站漏洞或成“致命点”
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 04-29通用智能人“通通”亮相中关村论坛
- 04-29拼多多投入45亿补贴,助力上海“五五购物节
- 04-29通义千问再开源 推出最大尺寸1100亿参数模型
- 04-29【环球视线】比亚迪交付首列出海云轨
- 04-21中国产品数字护照体系加速建设
相关文章
24小时热门资讯
24小时回复排行
热门推荐
最新资讯
操作系统
黑客防御