二进制转十进制,十进制转二进制的算法
[ 2008/06/17 09:25 | by selboo ]
来源:安全中国
二进制转十进制,十进制转二进制的算法
十进制转二进制:
用2辗转相除至结果为1
将余数和最后的1从下向上倒序写 就是结果
例如302
302/2 = 151 余0
151/2 = 75 余1
75/2 = 37 余1
37/2 = 18 余1
18/2 = 9 余0
9/2 = 4 余1
4/2 = 2 余0
2/2 = 1 余0
故二进制为100101110
二进制转十进制
从最后一位开始算,依次列为第0、1、2...位
第n位的数(0或1)乘以2的n次方
得到的结果相加就是答案
例如:01101011.转十进制:
第0位:1乘2的0次方=1
1乘2的1次方=2
0乘2的2次方=0
1乘2的3次方=8
0乘2的4次方=0
1乘2的5次方=32
1乘2的6次方=64
0乘2的7次方=0
然后:1+2+0
+8+0+32+64+0=107.
二进制01101011=十进制107.
一、二进制数转换成十进制数
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
二、十进制数转换为二进制数
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
1. 十进制整数转换为二进制整数
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
2.十进制小数转换为二进制小数
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
回答者:HackerKinsn - 试用期 一级 2-24 13:31
1.二进制与十进制的转换
(1)二进制转十进制
方法:"按权展开求和"
例:
(1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10
=(8+0+2+1+0+0.25)10
=(11.25)10
(2)十进制转二进制
· 十进制整数转二进制数:"除以2取余,逆序输出"
例: (89)10=(1011001)2
2 89
2 44 …… 1
2 22 …… 0
2 11 …… 0
2 5 …… 1
2 2 …… 1
2 1 …… 0
0 …… 1
· 十进制小数转二进制数:"乘以2取整,顺序输出"
例:
(0.625)10= (0.101)2
0.625
X 2
1.25
X 2
0.5
X 2
1.0
2.八进制与二进制的转换
例:将八进制的37.416转换成二进制数:
37 . 4 1 6
011 111 .100 001 110
即:(37.416)8 =(11111.10000111)2
例:将二进制的10110.0011 转换成八进制:
0 1 0 1 1 0 . 0 0 1 1 0 0
2 6 . 1 4
即:(10110.011)2 =(26.14)8
3.十六进制与二进制的转换
例:将十六进制数5DF.9 转换成二进制:
5 D F . 9
0101 1101 1111.1001
即:(5DF.9)16 =(10111011111.1001)2
例:将二进制数1100001.111 转换成十六进制:
0110 0001 . 1110
6 1 . E
即:(1100001.111)2 =(61.E)16
二进制转十进制,十进制转二进制的算法
十进制转二进制:
用2辗转相除至结果为1
将余数和最后的1从下向上倒序写 就是结果
例如302
302/2 = 151 余0
151/2 = 75 余1
75/2 = 37 余1
37/2 = 18 余1
18/2 = 9 余0
9/2 = 4 余1
4/2 = 2 余0
2/2 = 1 余0
故二进制为100101110
二进制转十进制
从最后一位开始算,依次列为第0、1、2...位
第n位的数(0或1)乘以2的n次方
得到的结果相加就是答案
例如:01101011.转十进制:
第0位:1乘2的0次方=1
1乘2的1次方=2
0乘2的2次方=0
1乘2的3次方=8
0乘2的4次方=0
1乘2的5次方=32
1乘2的6次方=64
0乘2的7次方=0
然后:1+2+0
+8+0+32+64+0=107.
二进制01101011=十进制107.
一、二进制数转换成十进制数
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
二、十进制数转换为二进制数
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
1. 十进制整数转换为二进制整数
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
2.十进制小数转换为二进制小数
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
回答者:HackerKinsn - 试用期 一级 2-24 13:31
1.二进制与十进制的转换
(1)二进制转十进制
方法:"按权展开求和"
例:
(1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10
=(8+0+2+1+0+0.25)10
=(11.25)10
(2)十进制转二进制
· 十进制整数转二进制数:"除以2取余,逆序输出"
例: (89)10=(1011001)2
2 89
2 44 …… 1
2 22 …… 0
2 11 …… 0
2 5 …… 1
2 2 …… 1
2 1 …… 0
0 …… 1
· 十进制小数转二进制数:"乘以2取整,顺序输出"
例:
(0.625)10= (0.101)2
0.625
X 2
1.25
X 2
0.5
X 2
1.0
2.八进制与二进制的转换
例:将八进制的37.416转换成二进制数:
37 . 4 1 6
011 111 .100 001 110
即:(37.416)8 =(11111.10000111)2
例:将二进制的10110.0011 转换成八进制:
0 1 0 1 1 0 . 0 0 1 1 0 0
2 6 . 1 4
即:(10110.011)2 =(26.14)8
3.十六进制与二进制的转换
例:将十六进制数5DF.9 转换成二进制:
5 D F . 9
0101 1101 1111.1001
即:(5DF.9)16 =(10111011111.1001)2
例:将二进制数1100001.111 转换成十六进制:
0110 0001 . 1110
6 1 . E
即:(1100001.111)2 =(61.E)16
解析“肉鸡”电脑“商业价值”
[ 2008/06/17 09:24 | by selboo ]
来源:赛迪网 作者:李铁军
无知者也无畏,经常有人说,我不怕木马,我也没可啥可偷的,中毒就格式化。但就因对信息安全意识的淡薄,恰恰给攻击者带来无尽的肉鸡资源,同时,也会让自己付出惨重的代价却浑然不觉。本文讲述“肉鸡”电脑存在的“商业价值”,由此你可了解:为什么攻击者这样热衷于攻击普通人的电脑,把别人的电脑变成“肉鸡”。信息安全中提到的肉鸡,当然不是吃饱肚子的那种。
谁都不希望自己的电脑被他人控制,但是很多人的电脑是几乎不设防的,很容易被远程攻击者完全控制。你的电脑就因此成为别人砧板上的肉,别人想怎么吃就怎么吃,肉鸡(机)一名由此而来。
为什么攻击者热衷于获得他人电脑的控制权呢?控制别人的电脑,有什么用?他也搬不走,不还在我家里放着么,很多对电脑安全一无所知的人这样看。
本文试图用简单的描述,解释“肉鸡”的“商业价值”,了解这些,你就知道,一个陌生人的电脑对攻击者有多少诱惑。
1.盗窃“肉鸡”电脑的虚拟财产
虚拟财产有:网络游戏ID帐号装备、QQ号里的Q币、联众的虚拟荣誉值等等。虚拟财产,是可以兑现为真实货币的,多少不限,积累起来就是财富。
2.盗窃“肉鸡”电脑里的真实财产
真实财产包括:网上银行,大众版可以进行小额支付,一旦你的网银帐号被盗,最多见的就是要为别人的消费买单了。此外,还有网上炒股,证券大盗之类的木马不 少,攻击者可以轻易获得网上炒股的帐号,和银行交易不同的是,攻击者不能利用偷来的炒股帐号直接获益,这是由股票交易的特殊性决定的。不然,网上炒股一定会成为股民的噩梦。
相当多的普通电脑用户不敢使用网上银行,原因就是不了解该怎样保护网上银行的帐号安全。事实上,网上银行的安全性比网上炒股还要强很多,网上炒股则几乎是没有安全措施的。正确使用网上银行,安全性和便利性都是有保障的。
3.盗窃他人的隐私数据
陈冠希事件,相信大家都知道,如果普通人的隐密照片、文档被发布在互联网上,后果将同样十分严重。利用偷来的受害人隐私信息进行诈骗、勒索的案例不少见。
如果偷到受害人电脑上的商业信息,比如财务报表、人事档案,攻击者都可以谋取非法利益。还有相当一部分攻击者试图控制受害人的电脑摄像头,满足偷窥他人隐私的欲望。
4.可利用受害人的人脉关系获取非法利益
你或许认为你的QQ号无足轻重,也没QQ秀,也没Q币。实际上并非如此,你的QQ好友,你的Email联系人,手机联系人,都是攻击者的目标,攻击者可以伪装成你的身份进行各种不法活动,每个人的人脉关系都是有商业价值的。
最常见的例子就是12590业务利用偷来的QQ号群发垃圾消息骗钱,还有MSN病毒,自动给你的联系人发消息骗取非法利益。
5.在肉鸡电脑上种植流氓软件,自动点击广告获利
这种情况下,会影响你的上网体验,相信所有人都很讨厌电脑自动弹出的广告。攻击者在控制大量肉鸡之后,可以通过强行弹出广告,从广告主那里收获广告费,流氓软件泛滥的原因之一,就是很多企业购买流氓软件开发者的广告。
还有的攻击者,通过肉鸡电脑在后台偷偷点击广告获利,当然,受损的还是”肉鸡“电脑。当然,还有花了冤枉钱的广告主。他购买的广告,全被无效的机器点击给骗走了。
6.以肉鸡电脑为跳板(代理服务器)对其它电脑发起攻击
黑客的任何攻击行为都可能留下痕迹,为了更好的隐藏自己,必然要经过多次代理的跳转,肉鸡电脑充当了中介和替罪羊。攻击者为传播更多的木马,也许会把你的电脑当做木马下载站。网速快,机器性能好的电脑被用作代理服务器的可能性更大。
7.“肉鸡”电脑是发起DDoS攻击的马前卒
DDoS,你可以理解为网络黑帮或网络战争,战争的发起者是可以获取收益的,有人会收购这些网络打手。这些网络黑帮成员,也可以直接对目标主机进行攻击,然后敲诈勒索。“肉鸡”电脑,就是这些网络黑帮手里的一个棋子,DDoS攻击行为已经是网络毒瘤。
总之,“肉鸡”电脑是攻击者致富的源泉,在攻击者的圈子里,”肉鸡“电脑就象白菜一样被卖来卖去。在黑色产业链的高端,这些庞大”肉鸡“电脑群的控制者构筑了一个同样庞大又黑暗的木马帝国。
无知者也无畏,经常有人说,我不怕木马,我也没可啥可偷的,中毒就格式化。但就因对信息安全意识的淡薄,恰恰给攻击者带来无尽的肉鸡资源,同时,也会让自己付出惨重的代价却浑然不觉。本文讲述“肉鸡”电脑存在的“商业价值”,由此你可了解:为什么攻击者这样热衷于攻击普通人的电脑,把别人的电脑变成“肉鸡”。信息安全中提到的肉鸡,当然不是吃饱肚子的那种。
谁都不希望自己的电脑被他人控制,但是很多人的电脑是几乎不设防的,很容易被远程攻击者完全控制。你的电脑就因此成为别人砧板上的肉,别人想怎么吃就怎么吃,肉鸡(机)一名由此而来。
为什么攻击者热衷于获得他人电脑的控制权呢?控制别人的电脑,有什么用?他也搬不走,不还在我家里放着么,很多对电脑安全一无所知的人这样看。
本文试图用简单的描述,解释“肉鸡”的“商业价值”,了解这些,你就知道,一个陌生人的电脑对攻击者有多少诱惑。
1.盗窃“肉鸡”电脑的虚拟财产
虚拟财产有:网络游戏ID帐号装备、QQ号里的Q币、联众的虚拟荣誉值等等。虚拟财产,是可以兑现为真实货币的,多少不限,积累起来就是财富。
2.盗窃“肉鸡”电脑里的真实财产
真实财产包括:网上银行,大众版可以进行小额支付,一旦你的网银帐号被盗,最多见的就是要为别人的消费买单了。此外,还有网上炒股,证券大盗之类的木马不 少,攻击者可以轻易获得网上炒股的帐号,和银行交易不同的是,攻击者不能利用偷来的炒股帐号直接获益,这是由股票交易的特殊性决定的。不然,网上炒股一定会成为股民的噩梦。
相当多的普通电脑用户不敢使用网上银行,原因就是不了解该怎样保护网上银行的帐号安全。事实上,网上银行的安全性比网上炒股还要强很多,网上炒股则几乎是没有安全措施的。正确使用网上银行,安全性和便利性都是有保障的。
3.盗窃他人的隐私数据
陈冠希事件,相信大家都知道,如果普通人的隐密照片、文档被发布在互联网上,后果将同样十分严重。利用偷来的受害人隐私信息进行诈骗、勒索的案例不少见。
如果偷到受害人电脑上的商业信息,比如财务报表、人事档案,攻击者都可以谋取非法利益。还有相当一部分攻击者试图控制受害人的电脑摄像头,满足偷窥他人隐私的欲望。
4.可利用受害人的人脉关系获取非法利益
你或许认为你的QQ号无足轻重,也没QQ秀,也没Q币。实际上并非如此,你的QQ好友,你的Email联系人,手机联系人,都是攻击者的目标,攻击者可以伪装成你的身份进行各种不法活动,每个人的人脉关系都是有商业价值的。
最常见的例子就是12590业务利用偷来的QQ号群发垃圾消息骗钱,还有MSN病毒,自动给你的联系人发消息骗取非法利益。
5.在肉鸡电脑上种植流氓软件,自动点击广告获利
这种情况下,会影响你的上网体验,相信所有人都很讨厌电脑自动弹出的广告。攻击者在控制大量肉鸡之后,可以通过强行弹出广告,从广告主那里收获广告费,流氓软件泛滥的原因之一,就是很多企业购买流氓软件开发者的广告。
还有的攻击者,通过肉鸡电脑在后台偷偷点击广告获利,当然,受损的还是”肉鸡“电脑。当然,还有花了冤枉钱的广告主。他购买的广告,全被无效的机器点击给骗走了。
6.以肉鸡电脑为跳板(代理服务器)对其它电脑发起攻击
黑客的任何攻击行为都可能留下痕迹,为了更好的隐藏自己,必然要经过多次代理的跳转,肉鸡电脑充当了中介和替罪羊。攻击者为传播更多的木马,也许会把你的电脑当做木马下载站。网速快,机器性能好的电脑被用作代理服务器的可能性更大。
7.“肉鸡”电脑是发起DDoS攻击的马前卒
DDoS,你可以理解为网络黑帮或网络战争,战争的发起者是可以获取收益的,有人会收购这些网络打手。这些网络黑帮成员,也可以直接对目标主机进行攻击,然后敲诈勒索。“肉鸡”电脑,就是这些网络黑帮手里的一个棋子,DDoS攻击行为已经是网络毒瘤。
总之,“肉鸡”电脑是攻击者致富的源泉,在攻击者的圈子里,”肉鸡“电脑就象白菜一样被卖来卖去。在黑色产业链的高端,这些庞大”肉鸡“电脑群的控制者构筑了一个同样庞大又黑暗的木马帝国。
PHP的面向对象编程
[ 2008/06/13 11:23 | by selboo ]
综述
PHP的面向对象编程是进行项目开发时常用到的方法。本节我们将要介绍如何在PHP中进行面向对象编程(OOP,Object Oriented Programming),并说明如何通过使用一些OOP的概念和PHP的技巧来减少编码和提高质量。在应用PHP类前,请你查阅相关的面向对象编程书籍,了解面向对象及类的相关基础知识。
如何建立一个类及类的实例对象?
在PHP中通过类来完成封装,我们先看一个简单的例子:
class ClassName {
//定义数据成员用"var",数据成员可以是一个整数,一个数组,一个相关数组(associative array)或者是一个对象
var $value;
//方法在类中被定义成函数形式,在方法中访问类成员变量时,可以使用$this->name ,比如$this->setValue
function setValue($v) {
$this->value=$v;
}
function getValue() {
return $this->value;
}
}
//创建一个对象用"new"操作符
$obj=new ClassName;
$obj->setValue("Hello,PHP world!");
$obj->getValue();
?>
继承用"extend"关键字。例如:
class HelloPHPWorld extends ClassName {
var $message;
function setMessage($msg) {
$this->message=$msg;
}
function getMessage() {
return $this->message;
}
}
?>
"HelloPHPWorld"类的对象现在拥有了父类(ClassName)的全部的数据成员及方法,另外还有自已的数据成员和方法。
我们可以使用:
$obj2=new HelloPHPWorld;
$obj2->setValue("I love world!");
$obj2->setMessage("I love PHP!");
PHP现在还不支持多重继承,所以不能从两个或两个以上类派生出新的类来。
如何在派生类中重定义一个方法?
我们可以在派生类中重定义一个方法,如果我们在"HelloPHPWorld"类中重定义了getValue方法,我们就不能使用"ClassName"中的getValue方法了。如果我们在派生类中声明了一个与基派同名的数据成员,那么当我们处理它时,它将"隐藏"基类的数据成员。
如何在类中定义构造函数?
构造函数是一个与类名同名的方法,当创建一个类的对象时,该函数会被调用以用来初始化对象,例如定义一个类:
class ClassName {
var $value;
function ClassName($v) {
$this->value=$v;
}
function setValue($v) {
$this->value=$v;
}
function getValue() {
return $this->value;
}
}
?>
上例中,类中的成员函数ClassName即一个构造函数,现在我们可以这样创建对象:
$obj=new ClassName("Hello,PHP world!");
将参数传递给构造函数,构造函数则会自动地将"Hello,PHP world!"赋值给函数中的数据变量value。构造函数和方法都是普通的PHP函数,所以可以使用缺省参数。
function ClassName($k="welcome",$v="Hello,PHP world!")
接着:
$obj=new ClassName(); // $key="welcome",value="Hello,PHP world!"
$obj=new ClassName("I love PHP!"); // $key="welcome",value="I love PHP!"
$obj=new ClassName("First","I love PHP!"); // $key="First",value="I love PHP!"
缺省参数使用C++的方式,参数是从左到右赋值的,如果传入的参数少于要求的参数时,其余的将使用缺省参数。
当一个派生类的对象被创建时,只有它的构造函数被调用,父类的构造函数没被调用,如果你想调用基类的构造函数,你必须要在派生类的构造函数中显式调用。可以这样做是因为在派生类中所有父类的方法都是可用的。
function HelloPHPWorld() {
$this->message="Hello,PHP world!";
$this->ClassName();
//显式调用基类构造函数
}
?>
在PHP中没有标准的方法来实现抽象类,但是如果需要这个特性,可以通过定义基类,并在它的构造函数后加上"die" 的调用,这样就可以保证基类是不可实例化的,现在在每一个方法(接口)后面加上"die" 语句,所以,如果一个程序员在派生类中没有覆盖方法,将引发一个错误。而且因为PHP 是无类型的,所以可能需要确认一个对象是来自于基类的派生类,那么在基类中增加一个方法来实义类的身份(返回某种标识id),并且在接收到一个对象参数时校验这个值。
[下一页]
如何在PHP中实现析构函数功能?
在OOP中,我们可以重载一个方法来实现两个或重多的方法具有相同的名字,但是有不同数量或类型的参数(这要看语言)。PHP 是一种松散类型的语言,没有析构函数,所以通过类型重载或者通过参数的个数不同来重载也没有作用。
有时在OOP中重载构造函数非常好,这样可以通过不同的方法创建对象(传递不同数量的参数)。而在PHP中,怎么去实现同等的功能呢?技巧如下:
class Myclass {
function Myclass() {
$name="Myclass".func_num_args();
$this->$name();
//注意$this->name()一般是错误的,但是在这里$name是一个将被调用方法的名字
}
function Myclass1($x) {
……
}
function Myclass2($x,$y) {
……
}
}
?>
通过在类中的额外的处理,使用这个类对用户是透明的:
$obj1=new Myclass(''1''); //将调用Myclass1
$obj2=new Myclass(''1'',''2''); //将调用Myclass2
如何在PHP中应用多态性?
多态性在象PHP这样的解释语言是非常容易和自然的:
function niceDrawing($x) {
//假设这是Board类的一个方法
$x->draw();
}
$obj=new Circle(3,187);
$obj2=new Rectangle(4,5);
$board->niceDrawing($obj);
//将调用Circle的draw方法
$board->niceDrawing($obj2);
//将调用Rectangle的draw方法
?>
如何应用序列化(Serializing) 机制?
PHP不支持永久对象,而在OOP中永久对象是可以在多个应用的引用中保持状态和功能的对象,这意味着拥有将对象保存到一个文件或数据库中的能力,而且可以在以后装入对象。这就是所谓的序列化机制。PHP 拥有序列化方法,它可以通过对象进行调用,序列化方法可以返回对象的字符串表示。然而,序列化只保存了对象的成员数据而不包话方法。
例子 :
$obj=new Classfoo();
$str=serialize($obj);
//保存$str到磁盘上
//几个月以后
//从磁盘中装入str
$obj2=unserialize($str)
?>
恢复了成员数据,但是不包括方法。这导致了只能通过类似于使用$obj2->x来存取成员变量的唯一办法。
如何使用类进行数据存储?
对于PHP和OOP,可以很容易地定义一个类来操作某件事情,并且无论何时你想用的时候都可以调用相应的类。我们可以使用OOP或PHP来减少编码并提高质量。
定义一个产品的类,定义它应该有的方法(例如:显示),然后定义对每一种类型的产品的类,从产品类派后出来(SoundItem类,ViewableItem类,等等),覆盖在产品类中的方法,使它们按我们的预想运作。
根据数据库中每一种产品的类型(type)字段给类命名,一个典型的产品表可能有(id, type, price, description)等等字段,然后在处理脚本中,可以从数据库中取出type值,然后实例化一个名为type的对象:
$obj=new $type();
$obj->action();
?>
这是PHP的一个非常好的特性,不用考虑对象的类型,调用$obj的显示方法或其它的方法。不需要修改脚本去增加一个新类型的对象,只是增加一个处理它的类。
当创建一个$obj的对象时,可以通过$obj2=$obj来拷贝对象,新的对象是$obj的一个拷贝(不是一个引用),所以它具有$obj在当时的状态。有时候,只是想生成一个象obj类一样的一个新的对象,可以通过使用new语句来调用类的构造函数。在PHP中也可以通过序列化,和一个基类来实现,但所有的其它类都要从基类派生出来。
当序列化一个对象,会得到某种格式的字符串,其中,字符串中有类的名字,可以把它取出来,比如:
$herring=serialize($obj);
$vec=explode('':'',$herring);
$nam=str_replace("\"",'''',$vec[2]);
?>
所以假设创建了一个"Universe"的类,并且强制所有的类都必须从universe扩展,可以在universe中定义一个clone的方法,如下:
class Universe {
function clone() {
$herring=serialize($this);
$vec=explode('':'',$herring);
$nam=str_replace(""",'''',$vec[2]);
$ret=new $nam;
return $ret;
}
}
//然后
$obj=new Something();
//从Universe扩展
$other=$obj->clone();
?>
所得到的是一个新的Something类的对象,它同使用new方法,调用构造函数创建出的对象一样。
phpinfo跨站脚本漏洞
[ 2008/06/13 11:15 | by selboo ]
By:剑心
漏洞说明: php是一款被广泛使用的编程语言,可以被嵌套在html里用做web程序开发。phpinfo()是用来显示当前php环境的一个函数,许多站点和程序都会将phpinfo放在自己的站点上或者在程序里显示,但是phpinfo里存在一些安全问题,导致精心构造数据就可以产生一个跨站脚本漏洞,可以被用来进行攻击。
漏洞成因: phpinfo页面对输入的参数都做了详细的过滤,但是没有对输出的进行charset的指定,而在一些浏览器里如IE7里,你可以让它自动选择编码或者通过一个iframe页面给它指定编码,这样就可以饶过phpinfo的过滤而产生一个跨站脚本漏洞。
漏洞来源: http://www.80sec.com/release/phpinfo-xss.txt
漏洞利用: 利用代码如下:
以上代码在IE7+php 5.2.6测试成功。phpinfo页面的xss甚至比其他页面更加危险,因为如果有phpinfo的存在,恶意攻击者可以利用phpinfo的输出bypass如httponly和一些基础认证。
漏洞影响: 影响所有版本的php和浏览器IE7
漏洞修补: 建议暂时删除站点的phpinfo页面避免被人利用。
本站内容均为原创,转载请务必保留署名与链接!
phpinfo跨站脚本漏洞:http://www.80sec.com/phpinfo-xss.html
漏洞说明: php是一款被广泛使用的编程语言,可以被嵌套在html里用做web程序开发。phpinfo()是用来显示当前php环境的一个函数,许多站点和程序都会将phpinfo放在自己的站点上或者在程序里显示,但是phpinfo里存在一些安全问题,导致精心构造数据就可以产生一个跨站脚本漏洞,可以被用来进行攻击。
漏洞成因: phpinfo页面对输入的参数都做了详细的过滤,但是没有对输出的进行charset的指定,而在一些浏览器里如IE7里,你可以让它自动选择编码或者通过一个iframe页面给它指定编码,这样就可以饶过phpinfo的过滤而产生一个跨站脚本漏洞。
漏洞来源: http://www.80sec.com/release/phpinfo-xss.txt
漏洞利用: 利用代码如下:
<html>
<head>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-7">
</head>
<body >
<iframe src="http://www.80sec.com/phpinfo.php?+ADw-SCRIPT+AD4-alert(document.domain);+ADw-/SCRIPT+AD4-=1">
<head>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-7">
</head>
<body >
<iframe src="http://www.80sec.com/phpinfo.php?+ADw-SCRIPT+AD4-alert(document.domain);+ADw-/SCRIPT+AD4-=1">
以上代码在IE7+php 5.2.6测试成功。phpinfo页面的xss甚至比其他页面更加危险,因为如果有phpinfo的存在,恶意攻击者可以利用phpinfo的输出bypass如httponly和一些基础认证。
漏洞影响: 影响所有版本的php和浏览器IE7
漏洞修补: 建议暂时删除站点的phpinfo页面避免被人利用。
本站内容均为原创,转载请务必保留署名与链接!
phpinfo跨站脚本漏洞:http://www.80sec.com/phpinfo-xss.html
中国万网2008免费空间
[ 2008/06/13 09:08 | by selboo ]
在2008年北京奥运即将来临之际,作为中国最大的互联网基础服务提供商,为助力广大中小企业网上奥运,中国万网继十年前推出“万网计划”后,再次倾情推出“新”万网计划,暨“中国万网2008免费计划”,此次活动主题为“迎奥运,赢万网”。 本次活动通过提供免费的虚拟主机空间、免费域名和相关的系列优惠产品,旨在更加深入的普及互联网应用,帮助更多的中国中小企业抓住奥运契机和科技奥运的大趋势,体验和实践互联网的梦想,融入电子商务潮流,最终通过信息化提升企业的形象和竞争力。
☆ 活动细则
1、每个工作日限量最多送出200套“2008免费套餐”,包括:0元注册.cn英文域名1个一年; 0元获得迎奥主机(100M网页空间)1个一年;同时可获得一次8.8折购买其它特定产品的机会。活动总计10000套,先到先得;
2、活动限时开放时间:工作日上午10:00—下午15:00,每日先到先得,申请了2008免费套餐才能获得8.8折扣优惠券;
3、限新注册直接用户,一个会员ID限只能申请一套2008免费套餐一年服务和享受一次一年8.8折优惠;
4、免费注册域名的用户需要在一个月内将域名指向具体的网站内容,有何问题,联系万网4006008500;
5、活动当期已经有折扣优惠的产品不再享受8.8折优惠;
6、用户如果一个月内不使用免费申请的迎奥主机,则万网会予以注销;
7、万网有权在发布到免费迎奥主机上的网站页面嵌入万网LOGO;
8、为了保证产品能送给有效的用户,真正发挥作用,要求用户注册时提交真实有效的电话,以便我们验证,如果用户提交的电话无法进行联系,我们会将产品予以注销;
☆ 申请流程
1、在本页面点击“参加2008免费计划”2、根据提示先注册会员,再填写产品申请信息;
3、产品申请成功后,可获得一个万网指定产品8.8折优惠券,优惠券自发出时起30天内有效;
4、用户凭8.8折优惠券券按万网产品申请流程可申购指定产品一次;
活动地址: http://www.net.cn/static/discount/08free.asp