本文目录一览:
- 1、WWW弱口令怎么利用
- 2、asp.net如何防止xss(脚本注入啊)
- 3、asp 求修复方法 XSS跨站脚本漏洞
- 4、如何对执行了特殊字符转义的网站进行XSS攻击
- 5、jsp中如何解决xss攻击问题
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窃取用户信息。
如曾互联网上出现过的某假冒银行网站,网址为,而真正银行网站是,犯罪分子利用数字1和字母i非常相近的特点企图蒙蔽粗心的用户。
又如2004年7月发现的某假公司网站(网址为),而真正网站为 ,诈骗者利用了小写字母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,因为安全产品正在变得越来越强大,攻击者不得不提高赌注。
asp.net如何防止xss(脚本注入啊)
将标签替换啊,如“”替换成“ l t ;”,等,简单代码:
string s1 = "scriptalert('abc')/script";
s1 = s1.Replace("", " l t ;").Replace("", " g t ;");
asp 求修复方法 XSS跨站脚本漏洞
UName=Replace(trim(Request.Form("UserName")),"'","")
PW=Replace(trim(Request.Form("Password")),"'","")
Sex=Replace(trim(Request.Form("Sex")),"'","")
QQ=Replace(trim(Request.Form("QQ")),"'","")
Age=Replace(trim(Request.Form("Age")),"'","")
AH=Replace(trim(Request.Form("AH")),"'","")
SF=Replace(trim(Request.Form("SF")),"'","")
这里
我只举一个例子,以下全部效仿
UName=Replace(trim(Request.Form("UserName")),"'","")
改为
UName=Replace(Replace(Replace(Replace(trim(Request.Form("UserName")),"'",""),Chr(34),""),":",""),"%","")
把' " %等危险字符过滤掉就行了
如何对执行了特殊字符转义的网站进行XSS攻击
Html中特殊字符不被转义,可以使用预格式化标签。pre 是 Preformatted text(预格式化文本) 的缩写。使用此标签可以把代码中的空格和换行直接显示到页面上。例如HTML代码:
12345
pre if (xx 5) { print "比5大!\n"; } /pre
浏览器显示效果:if (xx 5) {print "比5大!\n";}textarea/textarea之间包含有类似的这种转义字符的时候总会被解析,倒是可以把所有的""通过程序替换成"",但是有些本来就是""的也会被转换,这就错了。如何让textarea/textarea之间包含的文本原封不动的显示出来呢?总结如下:解决方法有两种:第1种:
123456
bodytextarea id='t' rows=20 cols=20/textareascriptdocument.getElementById('t').innerText='a';/script/body
jsp中如何解决xss攻击问题
那就写个过滤器,把有小于号大于号等等,与标签或者SQL有关的全部替换,然后再存进数据库。具体换成什么,自己决定吧。