Linux Mint: Pastebin은 /usr/local/bin에 있습니다.

Linux Mint: Pastebin은 /usr/local/bin에 있습니다.

저는 리눅스 민트 17을 사용하고 있습니다.

내가 하나 찾았어페이스트빈파이썬 파일에/usr/local/bin

사람들이 페이스트빈을 사용하는 목적을 고려할 때 이것이 보안 위험입니까?

여기에 이미지 설명을 입력하세요.

명령의 출력은 다음과 같습니다 stat.

  파일: "pastebin"
  크기: 576개 블록: 8개 IO 블록: 4096개 일반 파일
장치: fc01h/64513d Inode: 5768847 링크: 1
액세스 권한: (0755/-rwxr-xr-x) Uid: (0/ 루트) Gid: (0/ 루트)
접속시간 : 2016-01-19 10:43:31.595833213 -0500
수정: 2015-02-03 07:15:10.000000000 -0500
변경: 2016-01-19 10:43:30.575833252 -0500
 태어나다:-

원래 배포판에서는 페이스트빈이 거기에 삽입된 것으로 믿어집니다. 관련 토론은 여기Distro는 "/usr/local"을 해킹합니다..

답변1

/usr/local/bin안에 있든 /usr/bin밖에 있든 상관없습니다. 이는 매개변수나 STDIN을 웹 서비스에 게시하는 Python 스크립트일 뿐입니다.

#! /usr/bin/python

import sys, os, stat, subprocess

content = ""

mode = os.fstat(0).st_mode
if stat.S_ISFIFO(mode):
    content = sys.stdin.read()
elif stat.S_ISREG(mode):
    content = sys.stdin.read()
else:
    args = sys.argv[1:]
    if len(args) == 1 and os.path.exists(args[0]):
        with open(args[0], 'r') as infile:
            content = infile.read()
    else:
        str_args = ' '.join(args)
        content = str_args

if content != "":
    p = subprocess.Popen(["/bin/nc", "paste.linuxmint.com", "9999"], stdin = subprocess.PIPE)
    p.communicate(content)

사용자가 인터넷에 액세스할 수 있는 경우 pastebin이미 수행할 수 있는 것 이상의 작업을 수행하도록 허용하지 마십시오.

bash그런데 위의 못생긴 Python 코드를 다음과 같이 압축할 수 있다면 좋지 않을까요?

/bin/nc paste.linuxmint.com 9999 <<< "${*:-`cat`}"

(정확히 동일하게 작동하지는 않지만 중요하지 않습니다.)

관련 정보