解决supervisord守护httpd问题

最近在做运维时候用遇到supervisord,进程守护时候其他进程没有问题,启动httpd的时候出现了如下报错

gave up: httpd entered FATAL state, too many start retries too quickly

屏幕快照 2017-08-31 下午2.53.01.png
出现这个错误是因为httpd是前台程序,配置文件需要这么写

[program:httpd]
command=/bin/sh -c "exec /usr/sbin/httpd -k start -f /opt/web/config/httpd.conf -DFOREGROUND"
autostart=true
autorestart=true
startsecs=3
CVE-2017-9805(s2-052)复现过程

墨云科技在漏洞爆发第一时间写出利用方法,帮助我们的客户发现并且验证漏洞的危害性。

漏洞编号:CVE-2017-9805
漏洞作者:Man Yue Mo <mmo at semmle dot com>
影响版本:Struts 2.5 - Struts 2.5.12
漏洞等级:严重
漏洞简述:当启用 Struts REST的XStream handler去反序列化处理XML请求,可能造成远程代码执行漏洞。
漏洞描述:
当启用 Struts REST的XStream handler去反序列化处理一个没有经过任何类型过滤的XStream的实例,可能导致在处理XML时造成远程代码执行漏洞。
解决方案
目前尚无完美解决方案,建议如下:
1.建议尽快升级到 2.5.13版本。
2.在不使用时删除 Struts REST插件,或仅限于服务器普通页面和JSONs:
<constant name=”struts.action.extension” value=”xhtml,,json” />
3.限制服务器端扩展类型,删除XML支持。

环境搭建

https://github.com/Medicean/VulApps/tree/master/s/struts2/s2-037
下载docker部署就可以使用

漏洞复现

访问本地 http://localhost/orders
1.png

点击一个 edit 进行编译页面,然后提交,并用 burp 抓包。
2.png

然后将请求发送到Repeater,将请求中的Content-Type的值改为 application/xml,然后POST的数据用PoC中的xml内容代替。
3.png

网上有现成的poc,这里就不贴了,那么如何执行命令呢,原来弹计算器是

<string>/Applications/Calculator.app/Contents/MacOS/Calculator</string>

执行多条命令就这样

4.png

在远程服务器放一个b.sh文件,wget下载,我本地测试默认下载地址是在tmp目录下

5.png

OwlEye指纹识别

OwlEye

OwlEye指纹识别平台

为什么要造这个轮子

网上的指纹识别平台已经很多了,但是呢识别的速度都不是特别理想,所以一直有想法写一个自己团队的指纹识别平台。
因为这也不会那也不会的原因这个想法耽搁了很久,现在终于把想法实现了一半了

轮子都是什么样的

自己已知的识别方法也只有:
1.特殊文件的md5值匹配
2.请求响应主体内容或头信息的关键字匹配
3.请求响应主体内容或头信息的正则匹配
4.基于Url关键字识别
5.基于TCP/IP请求协议识别服务指纹
(嗯,上面几条是我抄的)

更多

服务器服务运行状态监控脚本

服务器服务运行状态监控脚本

nginx反向代理,Ip经常变动不能实时刷新,所以会出现502等情况,写个Python脚本20秒请求一次,如果状态码不是200就重启nginx

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author  : Al4rm
import requests
import os
import time
while True:
    try:
        nginx = requests.get('http://localhost/',timeout=3)
        # 请求localhost,超时3
        if nginx.status_code != 200 :
        # 判断状态码
            os.system('killall nginx && service nginx restart')
            print 'nginx restart'
        else:
            print 'nginx is running'

    except Exception,e:
    # 返回异常原因
        print e
    time.sleep(20)
    # 间隔20秒请求一次


centos 部署django+nginx+redis+uwsgi+supervisor

centos 部署django+nginx+redis+uwsgi+supervisor

系统版本

[root@localhost conf.d]# cat /etc/issue
CentOS release 6.9 (Final)
Kernel \r on an \m

[root@localhost conf.d]# uname -a
Linux localhost.localdomain 2.6.32-696.6.3.el6.x86_64 #1 SMP Wed Jul 12 14:17:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost conf.d]#
yum update
#这些都是报错过程中装的
yum install gcc zlib zlib-devel openssl -y openssl-devel -y pcre-devel openssl-devel  mysql-server
yum install mysql mysql-devel

更多