先办事后付款的黑客qq如何找正规的黑客(先办事后付款的黑客

先办事后付款的黑客qq如何找正规的黑客(先办事后付款的黑客

黑客平台hacker2020-11-01 8:00:002021A+A-

安全天使(sarticle)文章管理系统存在安全隐患作者:ccxer来源:www.1626.com/tech(冰火网络安全小组www.binghuo.cn)信箱:ccxer@163.com 近日学习PHP编程,想找一些代码参考,在朋友的建议下下载了安全天使的sarticle v1.8学习。安全天使对自己的程序非常有自信,但是人就难免会有大意的时间,由于水平有限看了一半也没有发现有什么太大的问题。但看到后台的时间发现了一个问题。通过这个bug可以得到系统仍至服务器的控制权。大家请看下面代码:if($_POST['action'] == "update"){//更新数据库foreach ($_POST['config'] AS $name=>$value) {            $DB->query("UPDATE ".$db_prefix."setting SET value='".trim(addslashes($value))."' WHERE name='".addslashes($name)."'");   }//将配置信息写入配置文件$config_filename = "settings.php";   $fp = fopen($config_filename,w);   $contents = " query("SELECT * FROM ".$db_prefix."setting");   while ($setting = $DB->fetch_array($settings)) {$contents .= "\n";$setting['value']=addslashes($setting['value']);$contents .= "\$configuration[$setting[name]] = \"".$setting['value']."\";\n\n\n";   }   $contents .= "?>";   fwrite($fp,$contents);   fclose($fp);//    redirect("更新常规信息成功!", "./configurate.php");} //end update 好像没有什么问题,刚开始我也这么认为,但后来我在测试安全性时发现有问题。下面这些代码把插入数据库的变量都过滤了,应该不会有什么问题了,但问题就出来这里。 $DB->query("UPDATE ".$db_prefix."setting SET value='".trim(addslashes($value))."' WHERE name='".addslashes($name)."'"); 下面让我们来试一试,进入后台基本设置,在文章系统的版权信息中填入版权信息如www.1626.com,这些随便写,重要的是你写入下面代码: ";echo PHP_OS;" 也没什么作用,就是输出服务器的操作系统。这样一来settings.php中的$configuration[copyright]变量值就变成了: $configuration[copyright] = "www.1626.com";echo PHP_OS;""; 而这些原本是不该这样的,'和“应该被过滤掉,理论上应该是: $configuration[copyright] = "www.1626.com\";echo PHP_OS;\""; 好像 $DB->query("UPDATE ".$db_prefix."setting SET value='".addslashes(trim($value))."'WHEREname='".addslashes($name)."'");中addslashes()没有起到作用,到底是为什么没起到作用我也搞不明白,毕竟我也是刚学这个。 先不管这些现在我们随便点开那个页面,都会在页面的左上角发现:WINNT(我是在这下测试的:)) 再写入下面代码:";$c="dir"; system($c);" 正确执行,到了这里我想不用我说太多了吧,也就是说你可以写入任意PHP代码,程序都会给你执行了。要不放个webshell进去?:)那个我就不多说了,都是些很容易的事情。不过就算你知道了这个BUG也没有什么用,想要好好的利用上,你还得利用另外的一个BUG取得管理账号。然后你就可以为所欲为了。为了安全其见,另外的一个BUG我就先不公布了。有兴趣的朋友可以到www.1626.com找我,我们可以交流一下。 修正办法: 改:   while ($setting = $DB->fetch_array($settings)) {$contents .= "\n";$contents .= "\$configuration[$setting[name]] = \"".$setting['value']."\";\n\n\n";   } 为:   while ($setting = $DB->fetch_array($settings)) {$contents .= "\n";$setting['value']=addslashes($setting['value']);$contents .= "\$configuration[$setting[name]] = \"".$setting['value']."\";\n\n\n";   }  PHP学习中,有喜欢PHP的朋友请和我联系交个朋友,大家共同学习。

(责任编辑:网络)

点击这里复制本文地址 以上内容由黑资讯整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

黑资讯 © All Rights Reserved.  
Copyright Copyright 2015-2020 黑资讯
滇ICP备19002590号-1
Powered by 黑客资讯 Themes by 如有不合适之处联系我们
网站地图| 发展历程| 留言建议| 网站管理