Html标签带来的安全隐患

安全|安全隐患

  WWW服务是因特网上最重要的服务之一,提供给客户各种各样的信息资源,而把这种信息资源组织起来的一个很重要的东西就是Html超文本语言,然后经过应用的发展就出现了其他的如UBB等标签但是最终都是以Html代码来实现的。经过研究发现,即使是最安全的安全代码(已经排除了通常所说的Xss漏洞)也无法避免另外一种恼人的攻击方式,配合不严格的程序,可能被人利用产生更大的威胁。

  我们就以现在广泛存在于论坛,文章系统,Blog系统等脚本程序中的[img]标签也就是转化后的<img>标签举例来说明这个被忽视的安全问题吧!首先我来谈谈自己对这个标签以及浏览器对这个标签的处理过程。首先看看下面这个UBB代码:,然后通过脚本程序的转换成为了<img src=http://www.webjx.com/UpLoadFiles/NewsPhoto/oveshell.jpg>。<img>标签

  是在当前的页面嵌入一个图片,现在的论坛程序在发帖子以及个人头像那里都有这个功能,当浏览器遇到这个Html标记的时候就会根据src的地
址,这里是http://www.webjx.com/UpLoadFiles/NewsPhoto/oveshell.jpg去寻找网络资源,当找到这个图片的时候就会访问并且下载这个资源然后在本地进行解析,
在浏览器里显示出这个图片,如果找不到这个资源就会显示一个红叉表示出错了。这里http://www.webjx.com/UpLoadFiles/NewsPhoto/oveshell.jpg是个很正常的图
片,所以一切都顺利进行,但是不知道大家想过没有,如果这个资源是其他类型的资源譬如一个网页一个eXe文件或者是一个asp页面,当不是图片类型文件的时候,结果会怎么样呢?

  答案很明显,是图片显示一个红X,我们的Exe文件也没有下载,Html页面也没有执行,这是理所当然的东西,因为IE或者其他浏览器会把取得的资源当作图片解析,这样就会产生错误从而显示红X了。到这里大家也许还觉得没有什么用,但是如果我们把图片的地址改成
http://127.0.0.1:88/imgtest/test.asp?user=shell这样的形式呢?其中test.asp里有如下内容的话

<%
dim fso,file //定义Fso对象

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = Server.createObject("Scripting.FileSystemObject")
path = server.mappath("imgtest.txt") //打开同目录imgtest.txt

set file=fso.opentextfile(path, ForAppending, TRUE)
file.write("有人来了: ") //写内容
file.write(request.Servervariables("QUERY_STRING"))
file.write vbCrLf
file.close
set file = nothing
set fso = nothing
%>

  

大家可以测试看看,我们的访问被记录了,甚至还得到了提交的参数,但是这对于浏览器来说是未知的,因为我们只看到了一个红X。到这里我们也许知道我们可以用这个东西做什么了!就是可以以浏览者的身份悄悄去访问一个页面,甚至支持Get的参数请求,这很重要,理解了这个就可以在后面发挥我们的想象力来利用这个来做什么!

  1、刷流量:我们可以在一个流量大的论坛把自己的图象设置成要刷的页面,然后每一个浏览者都会去访问下我们的页面,不管他是否看到了,但是他访问了,不是么?

  2、破坏:这个让人很恼火,对于动网论坛如果把你的图象设置成logout.asp的话,呵呵,所有看了你的帖子的人都会被T了,很爽吧!

  呵呵,至于幻影论坛,大家可以试试,但是这是很不道德的!

  3、黑客:这个是我们最感兴趣的,可以跨越权限做一些事情,因为现在很多的程序对于前台都是防守较好,但是后台就不是那么严密了。如果程序中取得数据的时候是用request("id")这样的方法取得的话,那么我们就可以利用标签向Cgi脚本提交数据了,注意必须不能是request.form("username2")这种严格指定了取得的变量来源的方式,因为我们的变量只能通过URL提交也就是上面说的QUERY_STRING方式。这对于写法不严密的程序是很致命的,要例子的话动网就是一个,动网Sql版本后台的messages.asp里取得数据的方式就是request,代码如下:

......
Sub Del()
Dim Dnum
If Request("username") = "" Then
Body = Body + "<br>" + "请输入要批量删除的用户名。"
Exit Sub
End If
Sql = "select COUNT(*) FROM Dv_Message where Sender = '" & Request("username") & "'"
Set Rs = Dvbbs.Execute(Sql)
......

这本来是后台的必须要有后台管理权限才能访问的,但是我们构造这样一个Url:

http://bbs.dvbbs.net/admin/messages.asp?action=del&user=';update/**/Dv_User/**/set/**/UserEmail=(select/**/top/**/1/**/

[Username]/**/from/**/Dv_admin)/**/where[UserName]='loveshell';--

  或者类似的语句了,然后放到[Img]标签里。大家也许觉得管理员看自己帖子的可能性也不大,但是要知道论坛短信也是支持和发帖子一样的[img]标签的,所以如果能给管理员发个短信,在里面构造我们的Img标签只要他一打开短信就会种招的哦!如果可以和社会工程学联一块,杀人不沾血啊,呵呵!有点遗憾的是仿佛动网对&等符号做了转换,大家可以尝试突破,更何况网络上写法不严密的程序何止千万。

  4 想象力 大家赚钱都这么辛苦,如果把IMG标签里的地址改成附件下载地址的话,呵呵,说说而已,没有测试。

  5 ......

  再说说对这个问题如何防御,如果想保留这个[IMG]标签但是又不想出问题的话,是需要转换的,譬如限定后缀必须是jpg,呵呵这可以通过URL编码加#JPG饶过,反正我觉得如果有限制的话一般都是能饶过的,即使你限制了IMG,那好,还有Flash标签呢,还有Rm标签呢?......

  防御和利用都是艰难的。

时间: 2024-11-02 15:00:03

Html标签带来的安全隐患的相关文章

Html标签带来的安全隐患测试_网络安全

WWW服务是因特网上最重要的服务之一,提供给客户各种各样的信息资源,而把这种信息资源组织起来的一个很重要的东西就是Html超文本语言,然后经过应用的发展就出现了其他的如UBB等标签但是最终都是以Html代码来实现的.经过研究发现,即使是最安全的安全代码(已经排除了通常所说的Xss漏洞)也无法避免另外一种恼人的攻击方式,配合不严格的程序,可能被人利用产生更大的威胁. 我们就以现在广泛存在于论坛,文章系统,Blog系统等脚本程序中的[img]标签也就是转化后的<img>标签举例来说明这个被忽视的安

央视3.15晚会曝光,江淮同悦轿车为了节约成本,给车主带来极大安全隐患

央视3.15晚会曝光,江淮同悦轿车为了节约成本,采用价格相对便宜的普通钢板代替防腐性能较好的镀锌板,造成钢板生锈,给车主带来极大安全隐患. 江淮同悦屡次被爆钢板生锈 江苏的王先生发现,刚买了一年多的江淮同悦轿车,车身上就莫名其妙的出现了很多鼓包.挑开引擎盖上的小鼓包,王先生吃惊地发现鼓包下面的钢板竟然已经生锈了.王先生向记者展示:"像牛皮癣一样这边冒一点,那边冒一点.全是黑颜色的,都氧化掉了." 杭州的潘先生发现刚买了一年多的江淮同悦轿车也起了很多鼓包.杭州的曹女士也发现刚买了两年多的

JAVA之旅(十四)——静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制

JAVA之旅(十四)--静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制 JAVA之旅,一路有你,加油! 一.静态同步函数的锁是class对象 我们在上节验证了同步函数的锁是this,但是对于静态同步函数,你又知道多少呢? 我们做一个这样的小实验,我们给show方法加上static关键字去修饰 private static synchronized void show() { if (tick > 0) { try { Thread

Struts表单标签带来的表单元素id的变化

    <s:form id="form1" action="student/stu_tosave" theme="simple"> <s:textfield id="stu.name" name="stu.name"/> </s:form>     用firebug可以观察到,生成的静态页面该标签如下:   <input id="form1_stu_na

URL中允许携带sessionid带来的安全隐患

很多WEB开发语言为了防止浏览器禁止了cookie而无法识别用户,允许在URL中携带sessionid,这样虽然方便,但却有可能引起钓鱼的安全漏洞. 图示: 下图是从测试组发来的安全报告中剪出来的,图有些小问题,本来想重画1个,在visio中没找到合适的图.所以只能用别人的图了. 说明: 让我们对上图的步骤进行详细说明: 1. 黑客用自己的帐号登录,假设登录页面是:http://www.abc.com/login.jsp 2. 服务器返回登录成功. 3. 黑客从cookie中查看自己的sessi

URL中允许携带sessionid带来的安全隐患分析_JSP编程

图示:   下图是从测试组发来的安全报告中剪出来的,图有些小问题,本来想重画1个,在visio中没找到合适的图.所以只能用别人的图了.           说明:    让我们对上图的步骤进行详细说明:    1. 黑客用自己的帐号登录,假设登录页面是:http://www.abc.com/login.jsp    2. 服务器返回登录成功.    3. 黑客从cookie中查看自己的sessionid,比如是1234    4. 黑客把带自己sessionid的地址发送给一般用户.http:/

石文昌解读360卸载潮:云查杀带来安全隐患

近日,360软件再次面临"卸载潮":12月6日,360安全卫士将内部办公系统误报为"恶意软件",导致宝钢集团内部发文,要求所有员工立即卸载360相关产品:此前,人民大学学生和老师们则发现,360浏览器把中国人民大学的校园论坛--天地人大BBS当做非法网站屏蔽了,要想正常使用只能卸载360浏览器. 对于接连发生的360软件误报恶意软件.误报非法网站这一情况,中国人民大学计算机系主任.全国知名的信息安全学科学术带头人石文昌教授表示,宝钢与天地人大BBS的事件是类似的,相

解析动网论坛默认账号密码带来的危害

动网论坛 自从类似动网key.asp文件带来的安全隐患被公开以后,一般比较负责的网站管理员会删掉这些类似的危险文件,但是还有一些我们以前不是太重视的问题,就是默认的账号密码的问题,同前面的危险文件一样,它们也会给网站带来致命的伤害. 不知道为什么,各大程序代码提供者的设的账号密码一般为admin.admin或者admin. admin888,所以往往遇到许多网站,我们只要知道这个网站用的是哪个系统的代码,我们就可以找其默认的管理员账号密码与默认的后台管理页面就可以轻松进入后台.动网的论坛就是一个

小心家装前被忽悠:智能家居背后的安全隐患

近日,未来学博士Ian Pearson发表了一篇关于10年后浴室智能化场景猜想的文章,结合人类现有的技术背景,Ian Pearson构想出一系列未来人类将在浴室内可体验到的智能化便利. 如通过智能镜子对身体健康进行评测,提供合理的妆扮建议;通过云数据同步,喷淋系统可根据室温及用户身体状况自动调节水温;以及包括可监测排泄物成分的智能马桶.可显示体重和体脂含量的地砖等具体场景. 当然除此之外,现阶段已实现的智能家居技术也不胜枚举:占据了家庭"至高点"客厅的智能电视及电视盒子,可观看4K视频