跨站技巧之深入研究

转载 2006年05月25日 23:29:00

跨站技巧之深入研究
  人气: 68 【字体:
  发布时间:2006-04-12 00:17:59

//-->

跨站脚本攻击是指在远程WEB页面的html代码中插入具有恶意目的的数据,用户认为该页面是可信赖的,但是当浏览器下载该页面,嵌入其中的脚本将被解释执行。跨站脚本攻击在网上最常见的应用方法是在某个论坛的ubb嵌入图像代码中写入一条javascript语句,当用户访问这个图像代码时就会有一个asp或php等服务器类型脚本文件来自动收集他的cookie信息。但这种利用方法有很多弊处,列举最重要三条:一是跨站攻击者需要有一个支持asp或php等权限的空间来放他的脚本文件。但现在网上免费空间是越来越少了,有asp功php权限的免费空间更是云深不知处;二是访问者访问攻击者构造的的论坛贴子时会弹出另一个ie浏览器窗口,其恶意用心简直是路人皆知。三是在有的论坛上攻击者收集到的并不是访问者的cookie信息,而是他的session id,让攻击者构造cookie欺骗时撒手无策。针对这三个提问,我深入研究了一下跨站技巧,可以说完美解决了全部问题,现在我就以wdb论坛的若尘美化版为例子撰文如下。
  一、跨站攻击不需要asp或php脚本的解决办法。
  网上最常见的跨站攻击方法是在论坛发贴时写入这样一条语句:
  其中kuzhan.php的源码如下:
<?php
$info = getenv("QUERY_STRING");
if ($info) {
$fp = fopen("lcx.txt","a");
fwrite($fp,$info."/n");
fclose($fp);
}
?>
当访问者浏览攻击者所在发的贴子时,kuazhang.php脚本里指定的lcx.txt就会收集访问者在这个论坛的cookie信息。其实,我们不用kuazhan.php也可以收集到cookie信息的。每个功能完整的论坛都会有一个短消息发送,我们完全可以用论坛里自带的短消息收件箱来接收cookie。像笔者的小论坛海阳顶端网的url是http://smallhome.51.net/lcx/wdb/index.php,发送短消息的url是http://smallhome.51.net/lcx/wdb/messanger.php?job=write图1,我们来看一下接收短消息的url是什么。将这个url文件保存到本地为messanger_php.htm,用记事本打开messanger_php.htm,找到<FORM action=messanger.php method=post>这一行改为<FORM action=http://smallhome.51.net/lcx/wdb/messanger.php method=get>,然后再打开messanger_php.htm,写入如图数据图2,点提交按扭就会得到这串url数据http://smallhome.51.net/lcx/wdb/messanger.php?ruser=lcx&title=title&content=message&job=write&step=2。图3。在这串数据里很明显可以看到短消息的接收人是lcx,短消息标题是title,短消息内容是messgae。得到这串数据后,我们将构造的跨站语句改造如下:
只要我以lcx这个id登陆论坛后,在贴子里写入这条语句,访问这个贴子的用户的cookie信息就会保存到lcx的短消息收件箱里。这条语句理论上是成立的,但是真要实战的话。你会发现是不行的,因为笔者的的wdb论坛过滤了单引号,如果真想构造成功的话就要把这条语句稍微改造一下,用单引号的ascii码代替单引号,所以语句要造如下:
这样才会真正成功。当然不同的用户登陆论坛后进行跨站攻击,要将这条语句的ruser=lcx中的lcx改为不同用户的id。而且如果你想在别的论坛进行跨站的话,只要采用我的方法找出不同论坛短消息发送的url数据,将其改造一下使之能够接受cookie就可以了。
二、跨站不弹出ie窗口的解决办法。
我以lcx这个id登陆论坛后,在论坛里发了一个贴子,其中代码中嵌入就是上文提到过的url数据。此时另一个用户hehe此时访问这个贴子看看会发生什么。图4。此时在用户hehe的电脑里会弹出另一个ie窗口,上面写到“已经完成,点这里返回收件箱"。而且ubb代码表示的图像是一个红色的x。针对这两个问题,绿盟的牛人czy提到过利用Microsoft.XMLHTTP控件(该控件WIN98/2K上都默认自带的东东,并且它是IE认为safe的控件!)在网页中给网站发送POST或GET的http请求这一特性写javascript语句来解决弹窗口的问题;对于“图片不能正常显示会是一个红色小叉”这个小问题,czy的解决思路是:一个网页中的所有IMG元素通过document.imanges都能例举到,并且可以设置它们的大小,当width=0时就相当于HIDDEN了。通过比较元素的src属性的值是否含有"ript"就可以判断是不是我们的图片。另外比较时大于符用>代替,0用0代替!这些话听起来好专业,不懂脚本编程的人确实难懂,幸好czy给我们写出了一个现成的工具ASPSKY 5.0 0320 COOKI搜集器。czy的这个工具只是针对动网5.0论坛的,不过我们完全可以改造一下针对若尘美化版的wdb论坛。图5。在图5中我们根据提示填写完毕有关输入后,得到如下数据:

得到的这一些数据只是针对动网论坛形式的,我们要改造成针对wdb论坛。只要将数据里最后的urlsmallhome.51.net/lcx/wdb/usersms.asp?action=send&touser=lcx&title=news&submit=发送&message=改一下就行了,我改成了接收cookie的在wdb论坛的短消息url,像我在第一标题段里写出来的那样。我改造后如下:

两串数据对照比较一下你就会明白我是如何改的了,当然你也就学会了用czy的ASPSKY 5.0 0320 COOKI搜集器得来的数据来改造成针对不同论坛的跨站数据了。此时我将这些数据以lcx的id发在贴子里,用户hehe再来访问的话,就不会有图4的那种情况发生了,他的cookie就会毫无查觉到被发送到lcx的短消息收件箱里。
三、session的伪造。
session通俗的讲就是会话的意思。每个用户访问论坛时,论坛的服务器就会给用户自动生成一个会话id,这个id和cookie不同,它是随机的变化的,每次用户访问论坛这个id都不同,而且当用户离开论坛后,这个id也会消失。在跨站攻击时,我们有时就得到的不是cookie而是session。像wdb论坛,我收集到了用户hehe的session信息是:图6
2003-10-28-13:13
lastpath=/lcx/wdb/wdbread.php?forumid=7&filename=f_198; lastvisit_fr=1067317946; lastvisit=1067317946; s=c4f8bde828bed94e80d3491dd5b2fcab
其中s=c4f8bde828bed94e80d3491dd5b2fcab就是用户hehe的session。很多人可能会cookie欺骗,但如何进行session欺骗就束手无策。其实session也是可以伪造的。
我们用minibrowser.exe这一工具来打开笔者论坛,并以用户名lcx来登陆。图7。我们来看看lcx的session选项。图8。只要我们将图8中的session也就是s=后边那一串数据改成为用户hehe的c4f8bde828bed94e80d3491dd5b2fcab,再来用minibrowser.exe这一工具请求该论坛的url,你就会发现此时我们的身份是用户hehe了。图9当然,要做到这一点的前提是用户hehe此时正在此论坛上。
  最后,笔者要说明的是,虽然全文是以wdb论坛举例,但我相信熟读本文后,你就能够在其它的论坛上成功进行跨站攻击和session欺骗登陆。

跨站脚本之深入研究

跨站脚本攻击是指在远程WEB页面的html代码中插入具有恶意目的的数据,用户认为该页面是可信赖的,但是当浏览器下载该页面,嵌入其中的脚本将被解释执行。跨站脚本攻击在网上最常见的应用方法是在某个论坛的u...
  • com0do
  • com0do
  • 2007年12月06日 15:08
  • 249

java总结(之二)--容器的深入研究

容器部分归纳为三篇来写,分别从基本用法,深入研究,以及在算法中的应用。本章主要介绍深入研究,具体实现部分。 上图是集合类库的完备图,包括抽象类和遗留构件。CollectionListList是...
  • u014773478
  • u014773478
  • 2015年07月02日 13:02
  • 769

Asp.net安全架构之1:xss(跨站脚本)

原理跨站脚本(Cross site script,简称xss)是一种“HTML注入”,由于攻击的脚本多数时候是跨域的,所以称之为“跨域脚本”。 我们常常听到“注入”(Injection),如SQL注...
  • luminji
  • luminji
  • 2013年11月27日 14:03
  • 482

深入java--容器深入研究

1 有一些以abstract开头的类,他们只是部分实现了接口的工具,例如,如果你在创建自己的set,那么并不用从set接口开始并实现其中的全部方法,只需从Abstract继承,然后执行一些新类创建的必...
  • u012411414
  • u012411414
  • 2014年12月07日 19:35
  • 556

《Java 编程思想》--第十七章:容器深入研究

每个java.util容器都有自己的Abstract类,他们提供了该容器的部分实现,所以只要去实现那些想要的容器所必须的方法,就可以创建新的容器Collection执行的所有操作 boolean...
  • wly1991313
  • wly1991313
  • 2013年05月31日 23:48
  • 942

《java编程思想》 第十七章 容器深入研究

11章介绍了java容器类库的概念和基本功能,这些对于使用容器来说已经足够了。这章是更深入的探索这个中来的类库。 下边是java容器类库的简化图: LinkedHashSet可以维护colle...
  • fromatozhappy
  • fromatozhappy
  • 2016年09月19日 08:54
  • 312

一阶滤波算法之深入研究

一阶滤波算法的原理: 一阶滤波,又叫一阶惯性滤波,或者一阶低通滤波,是使用软件编程实现硬件RC低通滤波的功能。 一阶低通滤波的算法为: Y(n) = aX(n)(...
  • qq_24085431
  • qq_24085431
  • 2016年03月05日 08:26
  • 1735

Thinking in Java:容器深入研究

1.虚线框表示Abstract类,图中大量的类的名字都是以Abstract开头的,它们只是部分实现了特定接口的工具,因此创建时可以选择从Abstract继承。Collections中的实用方法:挑几个...
  • zhangqix
  • zhangqix
  • 2016年04月01日 19:48
  • 769

解决html跨站问题

 public class RequestUtils {  public static String escapeHtmlString(String input)  {   if (in...
  • hedandan160
  • hedandan160
  • 2014年07月11日 15:55
  • 1331

JavaScript学习笔记-跨站脚本(Cross-site scripting,CSS,XSS)漏洞

Cross Site Script,缩写CSS又叫XSS,中文意思跨站脚本攻击,指的是恶意攻击者往Web页面里插入恶意html代码。 它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览...
  • u012843100
  • u012843100
  • 2017年01月04日 17:09
  • 574
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:跨站技巧之深入研究
举报原因:
原因补充:

(最多只允许输入30个字)