网络攻击技术——Cross-sitescripting

1.1.1摘要在本系列的第一篇博文中,我向大家介绍了SQLInjection常用的攻击和防范的技术。这个漏洞可以导致一些非常严重的后果,但幸运的是我们可以通过限制用户数据库的权限、使用参数化的SQL语句或使用ORM等技术来防范SQLInjection的发生,接来了要向大家介绍Cross-sitescripting(XSS)。定义:Cross-sitescripting(XSS),是一种经常出现在Web应用中的计算机安全漏洞,它允许恶意Web用户将代码植入到提供给其它用户使用的页面中。比如,包括HTML代码和客户端脚本的页面。为不和层叠样式表(CSS)的缩写混淆,通常将跨站脚本缩写为XSS。攻击者一般会利用XSS漏洞旁路掉访问控制——例如同源策略(sameoriginpolicy)或发起phishing攻击,网页挂马,cookie窃取等。上面的定义有点别扭不好理解,让我们回忆一下SQLInjection是把恶意的代码注入的数据库并且执行该SQL语句,最后返回相应数据,所以SQLInjection是作用于数据库的,而XSS是通过发送恶意的代码到服务,让服务器把恶意代码发送到其他用户浏览器中,最后劫持用户浏览器,所以XSS是作用于用户的。1.1.2正文XSS主要攻击方式有两种:一种就像SQLInjection攻击一样,我把一段脚本注入到服务器上,用户访问方法服务器的某个URL,这个URL就会把远端的js注入进来,这个js有可能自动进行很多操作。比如这次事件中的帮你发微博,帮你发站内消息等。注入有很多方法,比如:提交表单,更改URL参数,上传图片,设置签名,等等。另一类则是来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个跨站网页放在自己的服务器上,然后通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。这一类攻击的威胁相对较低,至少Ajax要发起跨站调用是非常困难的(你可能需要hack浏览器)。现在让我们通过具体的例子来看看XSS攻击是如何发生的,假设现在有一个招聘网站www.examplejob.com,它提供在该网站已注册的用户发布招聘信息和发送招聘信息到注册用户的功能。图1发布正常招聘信息通过该网站的发布招聘信息功能,我们把招聘信息发送到该网站的服务器中,然后服务器会把信息发送到注册用户中,这样我们就实现了发布信息的目的了,然而当一些不怀好意好意的用户他们很可能利用该网站存在的漏洞对用户进行攻击。图2发布恶意招聘信息如上图所示,不怀好意好意的用户会把恶意代码,如:JavaScript,VBScript,ActiveX,HTML或Flash等,把它们嵌入到发布的信息中去,然后发送到服务器中,如果服务器没有很好的校验信息,直接把信息转发到用户,这将导致一场XSS攻击灾难。通过上面的示意例子我们发现XSS攻击和SQLInjection存在着相同点,它们是通过注恶意代码进行攻击的,不同点是它们攻击对象不尽相同。XSS是通过注入恶意代码,如:JavaScript,VBScript,ActiveX,HTML,或Flash等来劫持用户浏览器,进而通过构造恶意的URL。通过构造恶意URL攻击假设现在有一个网站,它提供链接到www.examplejob.com网站的链接,这样链接再普通不过了,但大家有没有思考过这些外部链接可能存在危险呢?图3正常页面跳转通过上图,可以看到状态栏告诉我们这个链接将跳转到http://www.exmplejob.com,为了更加直观地分析XSS攻击,我们直接在地址栏中添加url参数实现跳转,示意代码如下:页面实现:<p>Youarenowleavingthissite-we'renolongerresponsible!</p><p><asp:Literalrunat="server"ID="litLeavingTag"/></>CodeBehind:varurl=Request.QueryString["url"];litLeavingTag.Text=string.Format("<ahref={0}>examplejob</a>",url);我们通过QueryString来获取URL中传递的参数,如果URL中包含了恶意代码,那么恶意代码将跳转到恶意网站或者直接执行恶意代码劫持用户浏览器。图4构造恶意URL上图我们在地址栏中输入一段Javascript代码,这也是XSS常用的攻击手段,它通过构造恶意的URL,当用户点击链接后,实现在用户的浏览器中运行恶意的代码。图5构造恶意URL当我们点击链接后,这次浏览器运行了恶意Javascript代码弹出了一个消息框提示我们已经被黑了,但实际情况XSS攻击并不会那么容易被用户...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?