良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

php来实现telnet的连接、传递命令、获取返回值等功能

<?php
error_reporting(-1);
class Telnet {
var $sock = NULL;
 
function telnet($host,$port) {
 $this->sock = fsockopen($host,$port);
 socket_set_timeout($this->sock,1,0);
}
function close() {
 if ($this->sock)  fclose($this->sock);
 $this->sock = NULL;
}
 
function write($buffer) {
 $buffer = str_replace(chr(255),chr(255).chr(255),$buffer);
 fwrite($this->sock,$buffer);
}
function getc() {
 return fgetc($this->sock);
}
function read_till($what) {
 $buf = '';
 while (1) {
  $IAC = chr(255);
   
  $DONT = chr(254);
  $DO = chr(253);
   
  $WONT = chr(252);
  $WILL = chr(251);
   
  $theNULL = chr(0);
 
  $c = $this->getc();
   
  if ($c === false) return $buf;
  if ($c == $theNULL) {
   continue;
  }
 
  if ($c == "1") {
   continue;
  }
  if ($c != $IAC) {
   $buf .= $c;
  
   if ($what == (substr($buf,strlen($buf)-strlen($what)))) {
    return $buf;
   }
   else {
    continue;
   }
  }
  $c = $this->getc();
   
  if ($c == $IAC) {
   $buf .= $c;
  }
  else if (($c == $DO) || ($c == $DONT)) {
   $opt = $this->getc();
    //echo "we wont ".ord($opt)."\n";
   fwrite($this->sock,$IAC.$WONT.$opt);
  }
  elseif (($c == $WILL) || ($c == $WONT)) {
   $opt = $this->getc();
    //echo "we dont ".ord($opt)."\n";
   fwrite($this->sock,$IAC.$DONT.$opt);
  }
  else {
    //echo "where are we? c=".ord($c)."\n";
  }
 }
}
}
$telnet = new telnet("192.168.0.1",'8080');
#echo $telnet->read_till("password: ");
#$telnet->write("KONGXX\r\n");
#echo $telnet->read_till(":> ");
#$telnet->write("ls\r\n");
#echo $telnet->read_till(":> ");
echo $telnet->close();


阅读全文...

ImageMagick被爆高危漏洞(CVE-2016-3714),测试及解决方案

 1、前言

ImageMagick是一套功能强大、稳定而且开源的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件,包括流行的TIFF、JPEG、GIF、PNG、PDF以及PhotoCD等格式。众多的网站平台都是用他渲染处理图片。可惜在3号时被公开了一些列漏洞,其中一个漏洞可导致远程执行代码(RCE),如果你处理用户提交的图片。该漏洞是针对在野外使用此漏洞。许多图像处理插件依赖于ImageMagick

阅读全文...

sendEmail发送邮件

sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bashperl和web站点使用。以上是sendEmail的简单介绍,千万不要和sendmail搞混掉了。用了sendEmail你将不在喜欢sendmail了.下载安装sendEmail1234sendEmail下载地址:http://caspian.dotconf.net/menu/Software/SendEmail/#

阅读全文...

nginx解决flash沙箱冲突

nginx配置:

server {
        listen 843;
        server_name localhost;

        location / {
                rewrite ^(.*)$ /crossdomain.xml;
              }
         
        error_page 400 /crossdomain.xml;
 
        location = /crossdomain.xml {
        root /var/www/html/;
      }

}


crossdomain.xml 放在web根目录下:

<?xml version="1.0" ?> 
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all" />
<allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>


然后perl去检测

# perl -e 'printf "<policy-file-request/>%c",0' | nc 127.0.0.1 843
<?xml version="1.0" ?> 
<cross-domain-policy>
<allow-access-from domain="*" /> 
</cross-domain-policy>


阅读全文...

MySQL Binlog三种格式介绍及分析

一.Mysql Binlog格式介绍

Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW!


1.Statement:每一条会修改数据的sql都会记录在binlog中。

优点:不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能。(相比row能节约多少性能与日志量,这个取决于应用的SQL情况,正常同一条记录修改或者插入row格式所产生的日志量还小于Statement产生的日志量

阅读全文...

mysq​l[Warning]Unsafe statement written to the binary log using statement format since BINLOG_FORMAT

[Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... SELECT... ON DUPLICATE KEY UPDATE is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are updated. This order cannot be predicted and may differ on master and the slave. Statement:INSERT INTO tab_name


查了下原因,tab_name 这个表上有2个唯一键。则使用INSERT … ON DUPLICATE KEY UPDATE ,且当前数据库binlog_format是statement格式,这种sql语句就会报unsafe。


阅读全文...

mysql解决Table ‘./xxx/xxxxxx’ is marked as crashed and should be repaired 错误

然后进入 MySQL 数据库发现 Table ‘./xxx/xxxxxx’ is marked as crashed and should be repaired 错误,因为 xxxxxx表被损坏了,所以 WordPress 的文章都显示不出来:

# mysql -u root -p
Enter password:

mysql> use xxx;
Reading table i

阅读全文...

smbd_vfs_init: vfs_init_custom failed for mysql_audit

[2016/03/29 18:01:06.455268,  0] ../lib/util/modules.c:48(load_module)

  Error loading module '/usr/lib/x86_64-linux-gnu/samba/vfs/mysql_audit.so': /usr/lib/x86_64-linux-gnu/samba/vfs/mysql_audit.so: undefined symbol: DEBUGLEVEL_CLASS_ISSET

[2016/03/29 18:01:06.455306,  0] ../source3/smbd/vfs.c:184(vfs_init_custom)

  error probing vfs module 'mysql_audit': NT_STATUS_UNSUCCESSFUL

[2016/03/29 18:01:06.455333,  0] ../source3/smbd/vfs.c:349(smbd_vfs_init)

  smbd_vfs_init: vfs_init_custom failed for mysql_audit


阅读全文...

Samaba常见的故障排除

1.限定用户访问无效
管理员限定了只有用户user1才可以访问共享目录/sharedoc,测试时却发现用户user2也可以访问,甚至所有的用户都可以访问!这是一个很容易出错的问题,我们看看在Samba配置文件/etc/samba/smb.conf中的相应设置段:
[sharedoc]
path=/sharedoc
valid user=user1
writable=yes
乍一看没什么问题,用testparm工具测试一下看看:

#testparm

Load smb config files from /etc/samba/smb.conf

Processing section "[homes]"

Processing section "[sharedoc]"

Unknown parameter encountered: "valid user"

Ignoring unknown parameter "valid user"


阅读全文...