php

说说php获取Client MAC

一开始我还认为php完全是可以获取到client的mac的,很是荒谬。最后还被云舒鄙视了一番。

这完全不可能的。php是不可能直接获取到client的mac的。

首先php完全就是在服务端解释执行的,所以没可能直接获取到浏览端的网卡MAC,因为浏览器默认行为是不会把MAC发送出去的。

要是从数据包的角度来解释的话,一般都是在局域网内部传输时才会包上MAC头,经过路由不断转发,实际上每经过一级设备都被剥去一层,到最后就只剩下TCP/IP的数据头和数据了。MAC只可能是在网络底层的物理层中传输。(也就是说client的mac地址信息是不可能在公网上传输的,公网上的MAC信息是最后一跳设备的接口MAC,Hell-Phantom评论)

从http协议来讲,也是不可能的。http请求中也不可能带上mac地址。可以看看http协议的相关说明

所以说php是不可能直接获取到client的mac地址的,php要想得到client的MAC地址,得用到第三方的ActiveX或是用js等。PS:http://www.kenes.com.cn/MAC.html

关键词: http , client , php

审计php代码中的''引用

审计sebug.net代码时,发现的一处问题,以前好像没怎么注意,这里记录下

  1. $query = $db->query("select * from DB where id IN (".$id.")");      
  2. $query = $db->query("select * from DB where id IN ('".$id."')");  

这两个最大的不同就是多了个''引用。

如果我们提交php?id=1 and 1=2,最后变成:

  1. select * from DB where id=1 and 1=2   //and 1=2 变成表达式了  
  2. select * from DB where id='1 and 1=2' //and 1=2 还是字符串  

记录下。但这绝不仅仅是sql注入!

关键词: 审计 , 安全 , php

Check MD5(md5sum for php)

CheckMD5.php代码

  1. <?php    
  2. /******************************************************************    
  3. Check MD5(md5sum for php)    
  4. 2008-11-09    
  5. luoq.net    
  6.    
  7. 校验文件的准确性.    
  8. 在网站被入侵后,检查文件的准确性。    
  9.    
  10. *UIX下可以用md5sum * >md5sum 来得到所有文件的md5值,然后把两次得到的    
  11. MD5值来进行对比。    
  12.    
  13. 在代码检查方面那么有一丁点用处,别的没什么用。    
  14. ******************************************************************/     
  15. echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>';  
  16. echo '<title>Check MD5(md5sum for php)</title>';     
  17. check_md5(".");     
  18.     
  19. function check_md5($directory){     
  20.     $check_md5_dir = @opendir($directory);     
  21.     echo '<ul>';     
  22.     while ($file = @readdir($check_md5_dir)) {     
  23.     if ($file != "." && $file != "..") {     
  24.     if(is_dir("$directory/$file")){     
  25.         echo '<li><strong>'.$file.'</strong></li>';     
  26.         tree("$directory/$file");     
  27.     }else{     
  28.         echo '<li>'.$file.' ==> '.md5_file("$directory/$file").'</li>';     
  29.     }     
  30.     }     
  31.     }     
  32.     echo '</ul>';     
  33.     closedir($check_md5_dir);     
  34. }     
  35. ?>  

关键词: 代码 , 原创 , 审计 , 安全 , php

SEBUG重构完成

重构了SEBUG
在速度、安全性、人性化等方面都得到了大幅度的提升。

http://www.sebug.net/bbs/thread-393-1-1.html

关键词: 重构 , sebug , php

PHP in the Register Globals

by amxku
2008-09-28
http://www.wolfexp.net

php中用户的输入数据为 GET、POST 和 COOKIE 三种,一般被称为 GPC 数据。php4.3.0之后的版本中register_globals 的默认值为off,但现在还是有部分在php.ini中将register_globals 的设为on,所以这里就存在了一些隐藏的风险。

register_globals 本身并没有安全风险。但如果将register_globals设为on,在全局名称空间和 $_GET、$_POST 或 $_COOKIE 数组中,将创建 GET、POST 和 COOKIE 传递到 PHP 脚本的所有变量。各种变量都被注入代码。再加上 PHP 在使用变量之前是无需进行初始化的,如果开发人员没有好的编程习惯,这就使得更容易产生一些安全风险。

» 阅读全文

关键词: 脚本 , 原创 , 安全 , php

autosuggestion tag for sablog

先看效果图

» 阅读全文

关键词: autosuggestion , 原创 , sablog , php

gzip没了...

最近回了趟老家,还是比较爽,没有电话,没有邮件,没有网络。每天听着青蛙的叫声入睡,哈哈。就是爽。明天要回上海了。这估计也是我上班以来休息的时间最长的一次了。
下午,把blog的模板改了改。
唉,这脚本被我改得乱七八糟了,现在升级也升不了了,麻烦。唉。用Yslow测试了一下,好像GZIP没有起来嘛。看了看代码,也没有发现什么问题。Archiver页面竟又有GZIP压缩,就主页没有压缩,唉,搞不明白了。回头有空再看看吧。网上找到一段代码,记录下,有空看看。

php代码
  1. <?php    
  2.      $file="all.js";    
  3.      header("Expires:".gmdate("D, d M Y H:i:s", time()+15360000)."GMT");    
  4.      header("Cache-Control: max-age=315360000");    
  5.      $mtime = filemtime($file);    
  6.      $gmt_mtime = gmdate('D, d M Y H:i:s'$mtime) . ' GMT';    
  7.      header("Last-Modified:" . $gmt_mtime);    
  8.      $ext = array_pop(explode('.'$file));    
  9.      switch ($ext){    
  10.      case 'css':    
  11.          header("Content-type: text/css");    
  12.          break;    
  13.      case 'js' :    
  14.          header("Content-type: text/javascript");    
  15.          break;    
  16.      case 'gif':    
  17.          header("Content-type: image/gif");    
  18.          break;    
  19.      case 'jpg':    
  20.          header("Content-type: image/jpeg");    
  21.          break;    
  22.      case 'png':    
  23.          header("Content-type: image/png");    
  24.          break;    
  25.      default:    
  26.          header("Content-type: text/plain");    
  27.      }    
  28.      if(extension_loaded('zlib')){ob_start('ob_gzhandler');}    
  29.      echo implode('', file($file));    
  30.      if(extension_loaded('zlib')){    
  31.      ob_end_flush();    
  32.      }    
  33. ?>   

关键词: blog , php

转码引发的扯淡

php在进行utf8编码转换时比较严格,对于提交不合法的数据将丢掉或不解析,而第三方编码类在这里会进行强行转换。这就是这两天转码引发了一连串的东东。

sablog 1.6注射漏洞 http://www.sebug.net/vulndb/3784/
Discuz!论坛wap功能模块编码的注射漏洞 http://www.sebug.net/vulndb/3778/
PHPWind Forums编码注射漏洞 http://www.sebug.net/vulndb/3785/

下了几套开源的系统看看了,还有部分系统也同意存在这样的问题。比较龌龊的东东。建议采用第三方编码转换类的朋友检查一下。

关键词: 注入 , 转码 , 漏洞 , php

Total: 561234567Next ›