`

浅谈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或跨站脚本或跨站脚本攻击)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将...

    浅谈Web应用的网络安全.pdf

    浅谈Web应用的网络安全.pdf 本文对Web应用的网络安全进行了详细的讨论,从Web技术的发展、管理到安全方面都进行了阐述。文章首先介绍了Web技术在商业活动上的使用和普及,然后提到了Web应用系统的漏洞问题,接着...

    Web_安全架构浅谈.pdf

    在《Web安全架构浅谈》中,主要讨论了Web安全的多个方面,包括安全架构、扫描器、WAF(Web应用防火墙)以及面临的挑战和解决方案。以下是详细的知识点解析: 1. **Web安全扫描器**: - 扫描器用于检测Web应用中的...

    浅谈html转义及防止javascript注入攻击的方法.docx

    ### 浅谈HTML转义及防止JavaScript注入攻击的方法 #### 一、HTML转义的概念 在Web开发中,用户输入的数据经常会直接展示在网页上,例如在评论区、聊天室等场景。如果用户输入的数据中包含HTML标签或者JavaScript...

    浅谈struts2安全

    5. **视图层的安全问题**:Struts2的视图层通常是JSP页面,XSS(跨站脚本攻击)和CSRF(跨站请求伪造)是常见的视图层安全威胁。开发者应确保在展示用户数据时进行适当的转义和验证,防止XSS攻击,并在需要的地方...

    「攻防实训」浅谈RFID安全 - web安全.zip

    《RFID安全浅谈》是关于网络攻防实训的一个重要话题,主要涵盖了Web安全的相关领域。RFID(Radio Frequency Identification)技术,即无线射频识别,已经在诸多领域得到广泛应用,如物流、零售、医疗等。然而,随着...

    jsp入门 jsp登陆源代码.jsp安全浅谈

    **JSP安全浅谈**,安全性是任何Web应用都需要重视的问题。对于JSP来说,主要的威胁包括跨站脚本攻击(XSS)、SQL注入、跨站请求伪造(CSRF)等。为了防御这些攻击,开发者应遵循最佳实践,例如:对用户输入进行严格...

    浅谈常见应用安全漏洞原理及防范

    这种攻击分为两种类型:存储型XSS和反射型XSS。 **防范措施:** 1. **输出编码:** 对用户提交的所有数据进行适当的HTML编码,以防止其作为活动内容被执行。 2. **内容安全策略(CSP):** 使用CSP来限制哪些来源的...

    浅谈信息世界的网络安全问题.pdf

    例如,钓鱼网站是XSS攻击的典型例子,设计者需要通过各种手段提醒用户,教育用户避免点击可疑链接,尤其是输入敏感信息时必须确认链接的官方性。此外,设计者还需要关注用户下载链接的安全性,防止用户无意中下载...

    浅谈移动互联网时代的网络安全.pdf

    然而,WebStorage存储的数据往往未加密,这为XSS(跨站脚本攻击)提供了可乘之机,攻击者可以通过注入恶意脚本,窃取存储在LocalStorage中的敏感数据,例如用户登录令牌或者其他重要信息。 二、丰富多样的APP验证...

    浅谈在WEBSHELL下如何运行命令.pdf

    其中提到的主要安全威胁包括SQL注入、XSS跨站脚本攻击、上传漏洞、弱口令和目录遍历等。由于这些漏洞的存在,黑客通常通过WEB应用作为突破口,获取WEBSHELL以进行进一步的攻击或权限提升。 0×01 ASP环境下运行命令...

    浅谈软件安全漏洞的自动化识别技术.rar

    1. 静态分析:这种技术在不执行代码的情况下对源代码或编译后的二进制文件进行分析。它主要通过检查语法结构、数据流和控制流来寻找不安全的编程模式。例如,查找未初始化的变量、缓冲区溢出或者不安全的库函数调用...

    最新浅谈云计算的网络安全威胁与应对策略.doc

    6. **跨站脚本攻击**(Cross-Site Scripting, XSS):攻击者在网页中插入恶意脚本,当用户浏览网页时,脚本被执行,可能导致用户数据被盗。 7. **XML签名包装**:攻击者篡改XML签名,以欺骗接收方,验证非法数据。 ...

    【ASP.NET编程知识】浅谈ASP.NET MVC应用程序的安全性.docx

    - **使用安全库**:推荐使用如AntiXss库来帮助进行输入验证和编码,以降低XSS风险。 ### ASP.NET MVC的安全最佳实践 1. **不相信任何用户输入**:所有用户输入都应被视为不可信,并在处理前进行验证和清理。 2. **...

    浅谈PHP+MYSQL身份验证的方法.

    可以使用`htmlspecialchars()`函数对输入进行转义,避免XSS攻击。 3. **连接数据库**:使用`mysqli_connect()`或`PDO`函数建立与MySQL服务器的连接,确保提供正确的主机名、用户名、密码和数据库名。 4. **查询...

    07-XSS之攻击与防御1

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

    浅谈大数据云计算环境下的数据安全 (4).pdf

    黑客可能利用各种手段,例如网络钓鱼、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等,非法获取用户数据或对数据进行破坏。这些攻击行为可能会导致数据丢失或损坏,对组织和个人造成严重的经济损失和信誉损害。 ...

    【JavaScript源代码】浅谈Angular的12个经典问题.docx

    【Angular 2的安全威胁】Angular 2应用需要注意XSS(跨站脚本攻击)、XSRF(跨站请求伪造)和其他Web安全风险。开发者应遵循安全编码规范,使用Angular提供的安全API,如DomSanitizer来处理用户输入,防止注入攻击。...

    浅谈Vue的基本应用

    本文将浅谈Vue的基本应用,主要涉及`$mount`方法、`created`生命周期钩子以及`v-text`指令的使用。 1. `$mount`方法:在Vue实例化时,我们通常会使用`new Vue({ el: '#app' })`来挂载Vue实例到HTML元素。然而,有...

Global site tag (gtag.js) - Google Analytics