偶遇邮件钓鱼二维码 网络安全

今天看到群里一个小伙子说他收到了一个邮件,一张二维码。。。erweimaa.png

正好我看到了,暂时没事就识别了一下。。。二维码是个短网址,还原后就是一个模仿的QQ邮箱登录界面,而且奇丑无比。。。下面先给大伙看一下:

erweimatioaz.png

看了一下页面的源代码,是经过Escape加密的。加密前的源代码在这里:

小知识:

定义和用法:escape可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

说明:该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。

https://pastebin.com/pXTWzpn3 

UnEscape解密后:https://pastebin.com/9WibA9RA 

jiemihou.png

当然,发件人有可能不是作者,只是买来的或者是盗来的。这里不做深究。但是钓鱼的主域名明显是个企业网站被入侵后搞得。还装了狗。。。anquang.png

。。。。想玩的自己去看源码玩

PS: 不要乱扫描二维码。。。至少我目前知道一种方法可以从QQ(手机版Android/IOS)直接打开你的支付宝,进入支付界面。


admin 发布于  2017-12-29 15:29 

Discuz 加密解密函数 authcode PHP

<?php
/**
 * $string 明文或密文
 * $operation 加密ENCODE或解密DECODE
 * $key 密钥
 * $expiry 密钥有效期
 */ 
function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
    // 动态密匙长度,相同的明文会生成不同密文就是依靠动态密匙
    // 加入随机密钥,可以令密文无任何规律,即便是原文和密钥完全相同,加密结果也会每次不同,增大破解难度。
    // 取值越大,密文变动规律越大,密文变化 = 16 的 $ckey_length 次方
    // 当此值为 0 时,则不产生随机密钥
    $ckey_length = 4;

    // 密匙
    // $GLOBALS['discuz_auth_key'] 这里可以根据自己的需要修改
    $key = md5($key ? $key : $GLOBALS['discuz_auth_key']); 

    // 密匙a会参与加解密
    $keya = md5(substr($key, 0, 16));
    // 密匙b会用来做数据完整性验证
    $keyb = md5(substr($key, 16, 16));
    // 密匙c用于变化生成的密文
    $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';
    // 参与运算的密匙
    $cryptkey = $keya.md5($keya.$keyc);
    $key_length = strlen($cryptkey);
    // 明文,前10位用来保存时间戳,解密时验证数据有效性,10到26位用来保存$keyb(密匙b),解密时会通过这个密匙验证数据完整性
    // 如果是解码的话,会从第$ckey_length位开始,因为密文前$ckey_length位保存 动态密匙,以保证解密正确
    $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
    $string_length = strlen($string);
    $result = '';
    $box = range(0, 255);
    $rndkey = array();
    // 产生密匙簿
    for($i = 0; $i <= 255; $i++) {
        $rndkey[$i] = ord($cryptkey[$i % $key_length]);
    }
    // 用固定的算法,打乱密匙簿,增加随机性,好像很复杂,实际上并不会增加密文的强度
    for($j = $i = 0; $i < 256; $i++) {
        $j = ($j + $box[$i] + $rndkey[$i]) % 256;
        $tmp = $box[$i];
        $box[$i] = $box[$j];
        $box[$j] = $tmp;
    }
    // 核心加解密部分
    for($a = $j = $i = 0; $i < $string_length; $i++) {
        $a = ($a + 1) % 256;
        $j = ($j + $box[$a]) % 256;
        $tmp = $box[$a];
        $box[$a] = $box[$j];
        $box[$j] = $tmp;
        // 从密匙簿得出密匙进行异或,再转成字符
        $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
    }
    if($operation == 'DECODE') {
        // substr($result, 0, 10) == 0 验证数据有效性
        // substr($result, 0, 10) - time() > 0 验证数据有效性
        // substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16) 验证数据完整性
        // 验证数据有效性,请看未加密明文的格式
        if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
            return substr($result, 26);
        } else {
            return '';
        }
    } else {
        // 把动态密匙保存在密文里,这也是为什么同样的明文,生产不同密文后能解密的原因
        // 因为加密后的密文可能是一些特殊字符,复制过程可能会丢失,所以用base64编码
        return $keyc.str_replace('=', '', base64_encode($result));
    }
}

$a = "mrxn.net";
$b = authcode($a, "ENCODE", "abc123");
echo $b."<br/>";
echo authcode($b, "DECODE", "abc123");
?>

运行效果如下:

4582HxrlipjHXFJ8fCB42AzZN6N0A/S07AFgev8swj1a6Qy/fxhuJFM

mrxn.net

注:因学习需要,转载挡笔记.文章来源于网络.


admin 发布于  2017-4-14 11:21 

好消息:沃通免费SSL证书升级为2年期5个域名-想要使用https的,赶紧行动啦 业界新闻

好消息:沃通免费SSL证书由原来支持1年期1个域名,升级为支持2年期5个域名!用户可以一次性申请2年期SSL证书绑定5个域名,已经能够满足站点的基本使用需求。2年期5个域名的免费SSL证书将于今天正式开放申请,欢迎新老用户登录沃通免费SSL证书申请页面立即体验!


沃通CA自2015年初推出免费SSL证书后,获得广大用户的一致好评,让广大中小网站和个人网站都能零成本启用HTTPS加密,保护网站机密信息安全。目前,沃通免费SSL证书的用户已经遍布180多个国家和地区,为全球普及HTTPS加密起到了极大的推动作用。此外,沃通推出的SSL精灵大大降低了SSL证书安装部署的复杂性,让用户能够一键搞定HTTPS加密。


DV免费ssl证书申请指南

一、注册、登录


1、打开浏览器,访问http://freessl.wosign.com,选择需要的证书类型

1.1免费多域申请地址:http://freessl.wosign.com/freessl

2、进入buy系统后,首先登录buy系统(点击左上角的登录)


3、如果您已经有账号密码或客户端证书,请选择登录方式并登录;如果没有,请先注册

其中,密码为登录申请平台的密码,可以是您的邮箱密码,也可以重新设置,并记住!

4、进入您的邮箱,激活邮件,等待取回您的证书,双击pfx证书安装,然后登录申请平台。(邮件收到的pfx证书为登录buy系统的客户端证书,请不要弄混)

二、申请证书


1、登录buy系统,进入用户中心,选择证书,添加您需要的证书,如下图(或登录后访问

DV SSL申请地址 https://buy.wosign.com/DVSSL.html

免费SSL申请地址 https://buy.wosign.com/free/FreeSSL.html)

在购物车中确定好年限及域名数量后(以DV多域为例),确定下单,并补充材料


2、接着您需要填写证书绑定的域名,证书签名算法,证书安装密码,中英文证书等信息。


3、接下来就是申请免费SSL证书重要的域名验证,wosign提供了两种方式,您可以选择whois邮箱验证,或者网站验证方式,如下图所示,也可以先跳过验证,进入下一步,等确认订单时再验证域名。02.png

PS:wosign有严格的域名验证,您必须通过上面其中一种方式验证域名的所有权,验证通过后,wosign才会颁发您的证书。01.png

4、选择证书申请文件生成方式,推荐您选择方式一,简单省事,如下图所示,然后确认订单信息。

PS:如果是自己生成的CSR,请选择方式二并将CSR提交到下方。

5、订单确认后,稍等一会,证书就会通过申请邮箱发送给您啦,通过邮箱就可以领取!


、取回您的证书并一定要保管好证书和密码! 

7、证书安装部署指南,请访问:http://freessl.wosign.com/guide

更多详细教程请前往官网查看:http://freessl.wosign.com/


相关文章:

emlog 使用ssl证书开启HTTPS安全访问三步曲


一段代码让nginx实现网站资源防盗链

nginx配置location总结及rewrite规则写法

nginx配置ssl加密(单双向认证、部分https)

NginxRewrite规则判断普通用户与搜索引擎爬虫(UA)实现https跳转

SSL/TLS原理详解

OpenSSL 与 SSL 数字证书概念贴

基于OpenSSL自建CA和颁发SSL证书


admin 发布于  2015-12-27 16:48 

Apache下设置自动将http跳转到https方法 技术文章

今天有朋友问我怎么配置虚拟机,使其支持访问者打开首页时自动跳转到https,而非http,因为是虚拟机,重复-虚拟机,所以呢,配置服务器的那些方法不好使,搜索得到如下方法,利用修改 伪静态规则 文件- .htaccess ,使虚拟机也可以支持直接打开网站跳转到https,具体方法如下,在htaccess文件末尾添加如下代码即可实现:


RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]


000106-2015-12-02.jpg

一行一条命令,其实就是利用伪静态将访问者跳转到443端口,从而实现了http到https的跳转。

注:此为虚拟机的方法,推荐使用服务器自己配置https,虚拟机的这样配置后,有可能导致蜘蛛不能抓取你的网站,对SEO不好,慎重选择!

操作前记得备份相关文件,以及数据!

服务器配置https方面可以参考如下文章:


emlog 使用ssl证书开启HTTPS安全访问三步曲

nginx配置ssl加密(单双向认证、部分https)

NginxRewrite规则判断普通用户与搜索引擎爬虫(UA)实现https跳

SSL证书与Https应用部署小结



admin 发布于  2015-12-2 18:53 

GFW难道掌握了openVPN的加密方式么 墙外世界

一直用的shadowsocks代理查资料,今天想尝试一下openVPN,但是发现配置后之后,链接,在日志页面出现好多Authenticate/Decrypt packet error: bad packet ID (may be a replay):。。。相同的提示,短短几分钟就是上万条000075-2015-10-25.jpg

google了一下,原来是这是大墙的重放攻击。。。很无语,用的是共享密钥链接,都是加密的,但是呢,还是被发现了,GFW越来越NB了,难道已经完全掌握了openVPN的加密么。太恐怖。。。还是好好的使用shadowsocks吧,不过前不久,作者被请去喝茶,之后他的github就变空了。。。估计要不了多久shadowsocks也会被GFW搞定。。。然后我们就会像韩国的欧巴们一样了么!NO。。。我们努力研究,总会有新的爬墙方法和查资料姿势!


admin 发布于  2015-10-25 19:39 

php加密-使用php_screw 1.5加密PHP文件的安装与使用 PHP

php文件通常以文本格式存贮在服务器端, 很容易被别人读到源代码, 为了对源代码进行保护, 可以采用对源代码进行加密的方式.要实现该功能需要两部分:

一是加密程序,实现对PHP文件的加密. 另一个就是对加密过的PHP文件进行解析, 以得到运行结果. 前者的实现比较简单, 就是一程序而已. 后者的实现大部分都是通过php module的形式来实现的.

php_screw(螺丝钉)可以实现以上的功能.最新版本是1.5,可以在sourceforge上下载.

安装:

安装的目的其实就是产生两个文件:一个是用于加密PHP文件的screw, 另一个就是php加载的解析模块php_screw.so


0.先下载php_screw http://sourceforge.net/projects/php-screw/files/ 或者是 http://jaist.dl.sourceforge.net/project/php-screw/php-screw/1.5/php_screw-1.5.tar.gz


解压,更改my_screw.h,里面的几个数字就是SEED,相当于密码,可以随意更改、增加

#tar -xzvf php_screw_1.5.tar.gz 
#cd php_screw_1.5 
#/opt/php/bin/phpize 
#./configure --with-php-config=/opt/php/bin/php-config 
#vi my_screw.h     (这个是密码文件,用户自己设置加密码的密码) 
#make   (make的作用是生成php_screw.so文件,这个文件是php用来解释加密码php文件的,生成的文件在./modules目录下. 
#cp ./modules/php_screw.so /opt/php/lib/php/extensions (php的扩展目录) 
#cd tools 
#make (make 生成screw 这个可执行文件,它用来加密码php文件,生成加密码后的.php文件)  
OK,编译完成 



或者是下面的方法:


1.将源代码包展开, 并进入该入目录:

2. 执行phpize, 就会在该目录下产生一个configure

3. 然后,运行configure

4. 再make

这样, 解析用的php_screw.so就生成了. 接下来要得到加密用的screw

1. 进入源码的tools目录

2. make

这样就生成了screw了. 如果要加密一个lx.php文件, 则: screw lx.php, lx.php就变成加密的了, 原来明文的lx.php被改名为lx.php.screw

接下来的任务就应该是加载php_screw.so模块了,

首先, 将该文件COPY到module目录下, 具体是哪个目录,可以参见/etc/php.ini配置文件中的extension_dir项,RHEL 5中为/usr/lib/php/modules

方法一:可以在/etc/php.d目录下新建一个screw.ini文件(文件是可以任意取的),其内容是一句话extension=php_screw.so

方法二:通过修改php.ini文件, 增加了一句extension=php_screw.so, 重启apache后就成功了.

重要说明:
编译的.so文件理论上跟你当前的php版本是相关的,也就是说,如果你是在php 5.1下编译的,就不能拿到php 5.2下去用,因为php的可加载模块总是与其版本相关的.而加密用的screw可执行文件理论上讲无所谓,只有他跟screw.so属于同一个版本就可以

测试:

编写一个hello, world程序,文件名为hello.php如下:

<?php
echo "Hello,world";
?>

用php  hello.php测试程序是否能成功显示, 成功显示后, 用screw对其进行加密(screw  helllo.php), 然后cat一下该php文件, 发现已经不是文本的了, 变成了许多乱字符, 说明加秘成功, 然后再php  hello.php, 如果能正常显示hello,world, 则说明加密的解析也没有问题了, 一切就算OK了.否则, 就说明还有不对的地方, 需要再仔细检查.

安装过程中遇到的问题:

1.找不到phpize

    phpize是属于php-develp的一个工具, (具体作用请自行解决) 因此, 必须要安装php-develp包. 中间有一些依赖, 如下:

[root@localhost Server]# rpm -ivh php-devel-5.1.6-5.el5.i386.rpm 
warning: php-devel-5.1.6-5.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
        autoconf is needed by php-devel-5.1.6-5.el5.i386
        automake is needed by php-devel-5.1.6-5.el5.i386
[root@localhost Server]# rpm -ivh autoconf
autoconf213-2.13-12.1.noarch.rpm  autoconf-2.59-12.noarch.rpm       
[root@localhost Server]# rpm -ivh autoconf-2.59-12.noarch.rpm 
warning: autoconf-2.59-12.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
        imake is needed by autoconf-2.59-12.noarch
[root@localhost Server]# rpm -ivh imake-1.0.2-3.i386.rpm 
warning: imake-1.0.2-3.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:imake                  ########################################### [100%]
[root@localhost Server]# rpm -ivh autoconf-2.59-12.noarch.rpm 
warning: autoconf-2.59-12.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:autoconf               ########################################### [100%]
[root@localhost Server]# rpm -ivh automake
automake14-1.4p6-13.noarch.rpm  automake16-1.6.3-8.noarch.rpm   automake-1.9.6-2.1.noarch.rpm   
automake15-1.5-16.noarch.rpm    automake17-1.7.9-7.noarch.rpm   
[root@localhost Server]# rpm -ivh automake-1.9.6-2.1.noarch.rpm 
warning: automake-1.9.6-2.1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:automake               ########################################### [100%]
[root@localhost Server]# rpm -ivh php-devel-5.1.6-5.el5.i386.rpm 
warning: php-devel-5.1.6-5.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:php-devel              ########################################### [100%]

2.每个加密的文件头部都一个很明显的字符串PM9SCREW, 这样很容易被人猜到是用screw加密的.

   这个问题的解决需要在安装的第一步就开始. 该标识串在源码的php_screw.h中. 在编译之前, 可以更改这个字符串, 例如,更改为PeterHu, 相应的下面的长度就不再是10了, 而是\tPeterHu\t,一共7个了.

#define PM9SCREW        "\tPM9SCREW\t"
#define PM9SCREW_LEN     10

网上看了好多PHP_SCREW安装文章.也看过好几次源码报里的READEME.
真折腾,要么脚本方式执行不了,要么网页无法显示.经过不屈不挠的折腾终于折腾出来了......分享以下方法...若有大虾知道具体原因不妨指点一二.
PS:CentOS release 5.8 (Final),php5.2.x
下载php-screw-1.5,若是php4用php-screw-1.3
源码包:http://sourceforge.net/projects/php-screw/files/latest/download?source=files
源码包放到/usr/local下,开始安装咯
1.tar -zxvf php_screw-1.5.tar.gz(出来permission之类错误就加sudo)
2.cd php_screw_1.5
3.phpize(执行不了就写phpize的绝对路径,装好了的前提下)
4.vi my_screw.h(里面是密码,想改就改,最好不要超过5位数,若改了要记好,因为重新编译时要用)
5.vi php_screw.h(里面是加密字符串,默认是PM9SCREW,最好改成别的字符串,字符串变了下面长度也要跟着变,改成LOVE的话长度就是6了,字符串要记下)
6. ./configure
7. make && make install
成功了会输出:Installing shared extensions:     /usr/lib64/php/modules/(这个目录是/etc下php.ini里extension_dir指定的目录).php_screw.so文件就在这里,当然编译目录的modules下也有.
8. cd tools/
9. make
 这样生成了加密用的程序screw了
10. cp screw /usr/bin下
这样加密的时候可以直接screw 文件名了,不用写screw的路径
11.修改ini
cd /etc/php.d(这里是php.ini加载的各种扩展可以在这写,打开别的文件看看就知道了)
vi php_screw.ini
里面写上extension=php_screw.so保存退出
12.重启apache
在根目录下创建hello.php 
<?echo 'hello';?>
php hello.php
输出:hello
screw hello.php
输出:Success Crypting(hello.php),说明加密成功,目录下会多出一个文件hello.php.screw,现在的hello.php已经是加密过的了,而多出的则是源文件的备份.
cat hello.php显示乱码.
php hello.php 输出hello.脚本方式解析加密文件成功了.
在根目录下建立phpinfo,里面若有php_screw扩展相关信息就说明可以通过浏览器访问加密的文件了.不用继续往下看了.我是有两个php.ini,网页跟脚本方式调用的ini不同.
接下来要重新编译一次了,为了可以在网页里正常显示.
1.去编译目录
make clean
然后把目录给删了.
2.tar -zxvf php_screw.1.5.tar.gz重新解压
3. phpize
4. myscrew.h跟php_screw.h里的密码跟字符串记得要跟之前的一样
5. ./configure --with-php-config=php-config路径(php安装目录下有)
6.make && make install
输出:Installing shared extensions:     /var/www/php5/lib/php/extensions/no-debug-non-zts-20060613/
(这次php_screw.so在这个目录下咯)
7.php_screw.so复制到phpinfo里extension_dir指定的目录,我的是/var/www/modules下
8.修改php.ini(php安装目录下的,phpinfo里会显示载入的是哪个ini,就改那个)
 在最下方添加extension=php_scrw.so
9.重启apache
10.在phpinfo里看看有木有php_screw相关信息,有的话就ok了~
至此,安装结束了,虽然有点点头绪,但我还是没太搞明白为什么得这样编译两次才行......

PS:编译过程中碰见的几个问题如下(解决方法)

1。 /root/php_screw-1.5/php_screw.c: In function ‘pm9screw_compile_file’:

解决方法:

需要修改php_screw.c

把第78,84,93行的org_compile_file(file_handle, type);
修改为:
org_compile_file(file_handle, type TSRMLS_CC);

然后再make就成功了。

2. /opt/soft/php_screw-1.5/php_screw.c: In function ‘zm_startup_php_screw’:/opt/soft/php_screw-1.5/php_screw.c:124: 错误:‘zend_compiler_globals’ 没有名为 ‘extended_info’ 的成员/opt/soft/php_screw-1.5/php_screw.c: In function ‘zm_shutdown_php_screw’:/opt/soft/php_screw-1.5/php_screw.c:133: 错误:‘zend_compiler_globals’ 没有名为 ‘extended_info’ 的成员make: *** [php_screw.lo] 错误 1

解决方法:
需要修改php_screw.c

把CG(extended_info) = 1;
修改为:
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;


php_screw如何对当前目录下,对目录下包含的文件,以及包含目录下的文件进行整体加密

find ./ -name "*.php" -print|xargs -n1 screw //加密所有的.php文件

find ./ -name "*.screw" -print/xargs -n1 rm //删除所有的.php源文件的备份文件

命令都实验过成功的.........应该没什么再补充的咯....



admin 发布于  2015-10-19 20:17