这几天的感受与总结

最大的感受,应该与人为善,不能与人为恶。

初次见面的朋友就可以在大晚上开车送我到机场,对我几次进行帮助的朋友晚上等我到来等到了凌晨一点。当我需要找工作时,各类朋友都进行了帮助和推荐,为此我甚至获得了事业编制机会。这都让我感受到了满满的善意和尊重。这么多天里,经历了很多的接受和拒绝,心理也变得强大了很多,回想起被阿里巴巴拒绝时,告知我机器学习方面是弱项,后来想想也是确实,未来是大数据和智能化时代,不跟随风口研究一些新技术难免会与部分实际工作脱节,再一个是阿里巴巴在智能机器方面是一个重点研究方向,对这个方面有要求也在所难免。后来我又投了杭州另外一家公司,没想到这家公司做的项目居然也是阿里巴巴的,于是阿里同样部门的不同员工又再次对我进行了面试,这次给了我offer。不过我思考了许久决定还是拒绝,不是因为别的,是因为我自认为在阿里巴巴的一些项目上自己确实还是有些欠缺的地方。我本来一直觉得机器学习识别恶意攻击是个伪命题,后来想想确实不是,在我小时候尝试对某家老牌的知名信息安全厂商进行入侵时,对方的waf就把我弄的焦头烂额,平均每隔几分钟或者几秒钟就封掉我一个IP,最后无奈只能放弃。不过也有例外,最近面试的很多单位里面,有不少人都希望能听到一个精彩的渗透测试或者内网渗透经过,但是事实上,越是大型内网可能入侵经过越不复杂。在被迫对一家知名信息安全厂商进行入侵时,我找到了该公司的销售qq群,加了一个销售,给他传了一个木马说这是我的防火墙需求列表。最后上线了一台该公司内网的肉鸡。成功看到了一些有价值信息,包括可以对该公司所有防火墙设备进行流量解密的私钥秘钥密码。但凭很多人都想不到,堂堂的信息安全公司会被人以这种手段入侵,但事实就是,从打入内网到获取信息没有超过半小时。事后我告知了该公司副总裁入侵原因, 继续阅读

发表在 Uncategorized | 这几天的感受与总结已关闭评论

php中的一个有关数组和判断的问题

PHP在比较中用 ==来比较值是否相等, 用 === 来比较值和类型是否相等。 但在现实条件中,可能会发生意外情况,这个是值得开发者注意的。

<?php

$flag = 'Wel come to CIA';
if($_GET['a'] != $_GET['b'])
{
    if(md5($_GET['a']) === md5($_GET['b']))
    {
        echo '007'.$flag;
    }
}

比如,程序员通过 ===比较值和类型并判断md5后的信息是否一致,一致后输出欢迎信息,直接给a和b赋值不一样信息的话,第一个条件满足,但是第二个条件又不满足了,所以这个时候可以利用数组和===的一个特性,a[] = 1; b[] = 2; 肯定是true的。 到了md5里面,因为a、b里面传入的都为array,所以均为NULL,

echo gettype(md5(array(‘1,2,3’)));//md5传入array结果为 NULL 继续阅读

发表在 php security | 标签为 , , , , | php中的一个有关数组和判断的问题已关闭评论

php web漏洞解读二

在网上看到了一篇有关web漏洞的文章,第三方大多为原文转载,这里做个解读备份。谢谢原作者。

这篇文章的标题为 远丰集团旗下CMS疑有官方后门

暂且不说后门定义是否准确,只看成因。

我下载了作者提供的解密后的代码,文件关键部分如下

if ($codelock_file == '') {
    echo "<font face='verdana' size='2'><br /><b>Error!</b> You cannot run codelock directly...</font>";
    die();
} else {}
$codelock_active_key="loveb2bbuilder";
@extract($_REQUEST);
error_reporting(E_ALL ^ E_NOTICE);
if ($codelock_act >= 1) {} else {
    @set_time_limit(240);
}
if ($codelock_enc == "") {
    $codelock_enc="codelock.php";
} else {}
if ($codelock_act >= 1) {
    $codelock_testsize=@filesize($codelock_filed/$codelock_enc);;
    if($codelock_testsize != $codelock_mastersize){
        @chmod("$codelock_filed/$codelock_enc", 0777);
        if (@copy ("$codelock_rfiled/$codelock_enc","$codelock_filed/$codelock_enc")){
        }else{
            echo "$codelock_filed/$codelock_enc";
            $codelock_fp2 = @fopen("$codelock_filed/$codelock_enc", "wb");
            if ($codelock_fp2) {
            } else {
                @unlink($codelock_filed/$codelock_enc);
                $codelock_fp2 = @fopen("$codelock_filed/$codelock_enc", "wb");
            }
            if ($codelock_fp2) {
                @fwrite($codelock_fp2, $codelock_masterdata);
                @fclose($codelock_fp2);
            }
        }
        @chmod("$codelock_enc", 0777);
    }

粗略读过作者的文章之后发现,这是一篇介绍某CMS Getwebshell文章。 问题在把可控参数内容写入了文件中。 那么,就要去寻找它的成因。 继续阅读

发表在 php security | 标签为 , , , , | php web漏洞解读二已关闭评论

如何正确的读网上的web漏洞分享文章(报告)

网上的漏洞分享报告很多,不管是文章也好报告也好,公开以后都是给人读的,最终目的都是让人受益。去了解,分析,研究,修复这个漏洞。但是读者群中不仅仅包括有厂商和漏洞研究者们,还有数目庞大的安全初学者和门外汉。

但是,在真正的拿起一篇文章开始读时,这些安全初学者往往会愕然,因为很多人会感觉无从读起,不好下手。为什么会有这种感觉呢?其实我猜应该是有以下几种原因导致的。

1. 安全研究者在发布漏洞时,往往只会注重技术细节,不会瞻前顾后。如果代码功底不强的读者看到了,肯定会云里雾里。

2. 漏洞公布平台版面/厂商要求? 不知道存在不存在这种情况,往往很多人喜欢一针见血, 不喜欢啰里八嗦的人,我曾经就被外甥训斥为:不要再啰嗦了。

3. 漏洞发布者是一个注重效率的人。

4. 初学者认为自己的问题太基础羞于下问,研究者认为问题太过基础耻于回答。(死循环)

于是这就导致了一个问题, 大多安全研究者认为此技术我已掌握不需要去过多了解,本来不会想去了解的人还是不会。 这样造成的结果就是,技术文章在有限的条件下偏离了造福一方的初衷。失去了安全的真正意义。 继续阅读

发表在 php security | 标签为 , , | 一条评论

网络现实安全之困,来自人的攻击

我是一个不善言辞的人,博客也只是随便写写画画之用,正好赶上修养期间,看到了这篇发表在网络安全新媒体上的文章,所以也就有了我这篇个人见解文。

企业安全意识培训调查:哪种网络钓鱼邮件具有接近100%的点击率?

看到下面有人留言, 这方面的资料不好找, 社会工程学钓鱼不好防御, 如何能在最小资源的情况下做到让整体人员的安全意识提升?其实也难怪他会有这方面资料不好找的感觉,但是在网络上,有关钓鱼和反钓鱼的信息有很多,那他为什么还会有这种感觉呢? 其实我认为,主要原因有几大方面, 1. 这类文章众多, 但基本都不全面,存在漏掉部分或者错误部分,让人难以分辨。 2. 大多分析都过于片面化,有价值的钓鱼攻击一些企业单位或是为了体现自身技术水平或是有其他原因,往往会忽略钓鱼攻击的前因后果,只注重附件/可执行文件, 不注重它的文本内容。 3. 钓鱼科普内容缺乏趣味性,没有考虑到整体受众群还有非技术人员,就造成了技术人员认为太低级不屑于认真看,非技术人员认为太技术应付草草了事。 4. 钓鱼培训后往往只注重领导汇报结果, 极少会有科普的后期验证。 5. 内部钓鱼培训不管是几步走原则,往往只会进行一次或者两三次,忽略了人的记忆是有限制和网络是一直在发展的问题。结合以上, 就造成了培训人员认为难以培训做几, 受众群则认为你这是在浪费我的时间, 最终结果是黑客攻击成功,培训人员因为办事不力被开除。 继续阅读

发表在 安全控制 | 标签为 , , , , | 网络现实安全之困,来自人的攻击已关闭评论

ubuntu下配置 elasticsearch6 的一点问题

本来想图省事, 怕Linux下的各种报错, 于是提前照着网上的说明改了yml文件, 最后发现无论怎么操作elasticsearch都起不来,一怒之下删了Ubuntu镜像,重新安装了Java jdk环境和elasticsearch, 原生配置,才发现了问题。

[2018-02-07T13:07:44,917][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] loaded module [aggs-matrix-stats]
[2018-02-07T13:07:44,917][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] loaded module [analysis-common]
[2018-02-07T13:07:44,918][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] loaded module [ingest-common]
[2018-02-07T13:07:44,918][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] loaded module [lang-expression]
[2018-02-07T13:07:44,918][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] loaded module [lang-mustache]
[2018-02-07T13:07:44,918][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] loaded module [lang-painless]
[2018-02-07T13:07:44,918][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] loaded module [mapper-extras]
[2018-02-07T13:07:44,918][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] loaded module [parent-join]
[2018-02-07T13:07:44,918][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] loaded module [percolator]
[2018-02-07T13:07:44,918][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] loaded module [rank-eval]
[2018-02-07T13:07:44,918][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] loaded module [reindex]
[2018-02-07T13:07:44,919][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] loaded module [repository-url]
[2018-02-07T13:07:44,919][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] loaded module [transport-netty4]
[2018-02-07T13:07:44,919][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] loaded module [tribe]
[2018-02-07T13:07:44,919][INFO ][o.e.p.PluginsService     ] [Hl7YsCM] no plugins loaded
[2018-02-07T13:07:57,635][INFO ][o.e.d.DiscoveryModule    ] [Hl7YsCM] using discovery type [zen]
[2018-02-07T13:07:58,696][INFO ][o.e.n.Node               ] initialized
[2018-02-07T13:07:58,702][INFO ][o.e.n.Node               ] [Hl7YsCM] starting ...
[2018-02-07T13:07:59,203][INFO ][o.e.t.TransportService   ] [Hl7YsCM] publish_address {192.168.67.131:9300}, bound_addresses {[::]:9300}
[2018-02-07T13:07:59,287][INFO ][o.e.b.BootstrapChecks    ] [Hl7YsCM] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2018-02-07T13:07:59,310][INFO ][o.e.n.Node               ] [Hl7YsCM] stopping ...
[2018-02-07T13:07:59,374][INFO ][o.e.n.Node               ] [Hl7YsCM] stopped
[2018-02-07T13:07:59,375][INFO ][o.e.n.Node               ] [Hl7YsCM] closing ...

继续阅读

发表在 elasticsearch | 标签为 , , , , | ubuntu下配置 elasticsearch6 的一点问题已关闭评论

使用 python eml-parser 对 eml文件进行格式化

python下有个工具是可以对eml文件进行格式化的,介绍在这里

 https://pypi.python.org/pypi/eml-parser

首先要安装包,如果你设置了全局环境变量的话,只需要cmd下执行就可以,如果没有设置全局变量,首先要切换到你python的安装目录,然后再切换到scripts目录,执行

 pip install eml-parser

当你看到这个提示时,说明安装成功

Successfully installed cchardet-2.1.1 eml-parser-1.8 file-magic-0.3.0 python-dateutil-2.6.1 six-1.11.0 typing-3.6.4

这个时候,可以来试验一下是否可用。发现报错,于是到项目地址下载源码包查看,发现支持的版本有 继续阅读

发表在 python | 标签为 , , | 使用 python eml-parser 对 eml文件进行格式化已关闭评论

tpphpcms数据库设计一

在使用tp进行cms开发之前, 首先要设计数据库的表结构,表结构设计完成后, 进行tp框架的搭建,项目的命名,控制器的命名 搭建完成后逐步开始完成控制器类,模型类,模版展示,然后是整合,测试和后期维护。

在进行设计之前, 要考虑到项目的整体,都有哪些功能, 哪些模块, 单元、分类、文章、用户、权限、都有哪些字段,最好设计的时候, 画出所属关系的关联图, 这样进行设计的时候, 思路会更加清晰。
继续阅读

发表在 php | 标签为 , , | tpphpcms数据库设计一已关闭评论

cms开发概述

由于在迁移数据的过程中失误删掉了cms的数据库,所以表结构和内容需要重新搭建和整合,想着整合的时候顺便重新复习一下代码,故有此系列文章。
继续阅读

发表在 php | 标签为 | cms开发概述已关闭评论

win+apache应用网站的SSL(https)功能

该方法已经失效 22/3/2018

应用之前的准备工作:

1. 确认自己安装的apache是否包含https功能,可以切换到apache bin目录, 如果该目录下不存在openssl.exe, 就说明你安装的apache是不包含该功能的, 需要手工安装openssl,或者安装LAMP套件(比如XAMPP)。

2. 当你确认自己的环境是支持openssl的之后, 就需要准备一个域名, 先临时解析到ssl官方指定的ip段(证书申请成功后可以停止解析,这个只为验证使用。)

官方指定的验证ip段:109.123.64.0 – 109.123.127.255

使用之前你可以先ping一下, 如果是存活的, 说明是可用的, 这里我选择的ip是

109.123.127.235

对应domain: honey.liang1234.com (记录类型为A记录)

ping一下honey.liang1234.com, 发现解析生效, 就可以开始进行证书申请工作, 首先打开第一个需要的网址

https://ssl.uk2.net/cgi-bin/certificate-apply.pl

填入honey.liang1234.com, 选择下一步, 会提示让你选择域名whois里的邮箱,这个时候你必须要确保这个邮箱收信和登陆时没有问题的, 确认无误后, 即可进行下一步。

到了下一步后, 会让你填写一些info信息和server端密钥信息, 这个时候, 需要登陆服务器, 切换到apache bin目录, 依次执行

openssl genrsa -out liang1234-privkey.pem 2048
openssl req -new -key liang1234-privkey.pem -out liang1234.csr

执行这个之前, 需要注意的是, server软件平台不要选错了, 如果你是apache, 就要选择apache modssl, 如果是其他平台, 选择对应的平台即可, 确认无误后, 登陆服务器开始依次执行命令
继续阅读

发表在 php, 安全控制 | 标签为 , , , , , | win+apache应用网站的SSL(https)功能已关闭评论