代码之家  ›  专栏  ›  技术社区  ›  rook

可利用的python函数[关闭]

  •  24
  • rook  · 技术社区  · 14 年前

    这个问题类似于 Exploitable PHP Functions

    受污染的数据来自用户,或者更确切地说是攻击者。当受污染的变量到达sink函数时,就会有一个漏洞。例如,执行SQL查询的函数是一个接收器,而get/post变量是污染源。

    python中所有的sink函数都是什么?我正在寻找引入漏洞或 software weakness . 我对远程代码执行漏洞特别感兴趣。是否有包含危险功能的整个类/模块?您有什么有趣的python漏洞的例子吗?

    5 回复  |  直到 7 年前
        1
  •  14
  •   admalledd    14 年前

    从…开始 pickle 文档:

    Warning
    
    The pickle module is not intended to be secure against erroneous or maliciously constructed data. Never unpickle data received from an untrusted or unauthenticated source.
    
        2
  •  14
  •   nmichaels    14 年前

    eval exec 是经典。然而, open file 也可能被滥用:

    open('/proc/kcore', 'w').write('0' * 1000 * 1000 * 1000)
    

    然后是 os , sys , subprocess dircache 模块。几乎所有与文件系统有关的东西,或者可以用来将数据转换成可执行代码的东西(比如 os.system )会在名单上。

    正如S.Lott在评论中指出的,写入文件系统和执行任意外部程序并不是特定于Python的。但是,它们值得安全审计人员考虑。这些功能中的大多数都可以安全使用,而不必太担心安全性。 埃瓦 执行程序 另一方面,是巨大的红旗。安全使用它们需要精心护理。

        3
  •  9
  •   dietbuddha    14 年前

    在找这种东西的时候,我倾向于偏执狂。更多的是因为我倾向于做大量的元编程。

    • 大多数副作用命令(其他贴子覆盖)
      • 文件操作( open , tarfile , zipfile ,…)
      • 网络呼叫( urllib2 , socket ,…)
      • 数据序列化/持久性( pickle , shelve ,…)
      • 进程/线程管理( subprocess , os.fork , os.kill ,…)
    • 内置
      • getattr
      • setattr
      • delattr
      • eval
      • exec
      • execfile
      • __import__

    可能还有其他我忘记的。我还对通过修改sys.path、sys.modules等函数进行用户输入持谨慎态度。

        4
  •  6
  •   rook    14 年前

    这个 subprocess 模块包含讨厌的功能,不赞成这些执行命令/进程的方法:

    os.system
    os.spawn*
    os.popen*
    popen2.*
    commands.*
    

    还有 exec 它将执行python代码和 eval 它将“计算”表达式并可用于操作变量。

        5
  •  3
  •   khachik    14 年前

    这个 input 函数计算给定的字符串并返回结果,它有一些限制,但仍然可以利用。

    推荐文章