Python ctypes 溢出漏洞分析(CVE

访客4年前黑客文章726

简介

Python是一款快速、优雅的编程语言。ctypes 是Python的外部函数库,它提供了与 C 兼容的数据类型,并允许调用 DLL 或共享库中的函数,可使用该模块以纯 Python 形式对这些库进行封装。在ctypes之中存在栈溢出问题。漏洞影响范围:小于3.9.1版本,影响模块_ctypes/callproc.c。

分析环境

系统版本:Win10 x64? ? ? 环境版本:VS2019? ? ? Python源码版本:3.8.7rc1

环境搭建

1、安装VS2019,访问?https://visualstudio.microsoft.com/zh-hans/vs/按照安装步骤即刻安装。

2、访问?https://github.com/python/cpython/tree/v3.8.7rc1/下载CPython源码。

3、在管理员权限下执行 cpython-3.8.7rc1\PCbuild\build.bat 等待其执行成功。

4、执行 cpython-3.8.7rc1\PCbuild\pcbuild.sln。

5、启动vs2019之后,右键选择 解决方案 找到 属性->配置属性。因为其他模块不需要分析,所以就不用编译。按照图中勾选。

6、选择菜单栏之中 生成->生成解决方案。

7、环境启动后,在需要调试的 *** 上设置断点。

代码分析

先来看到 _ctypes\callproc.c PyCArg_repr *** 。这个函数的作用将数据类型转换为C数据类型进行传递。 该 *** 内定义变量 buffer[256]用于存放字符。

问题代码位于 cpython-3.8.7rc1\Modules_ctypes\callproc.c Line:521。使用sprintf作为字符串格式化,由于双精度长度超过预期。当给予超长字符串时候将会触发字符串超长溢出。

咱们执行POC之后观察DEBUG情况

>>> from ctypes import * 
>>> c_double.from_param(1e300)

Debug情况表示已经触发溢出,漏洞实际影响较小,buffer 256长度无法继续利用。如果大佬有什么好思路,欢迎补充。

修复情况

咱们访问 https://github.com/python/cpython/blob/master/Modules/_ctypes/callproc.cLine:488 PyCArg_repr()。

在新版本之中该问题已经得到修复,已经将sprintf换成PyUnicode_FromFormat。

温馨提示:最新版已修复,需要使用C\C++开发Python模块的大佬要注意更新。

总结

Python作为胶水语言为了结合各类语言的优势,安全问题相对涉及面较为广泛。虽然问题影响不大,但是挖掘漏洞的思路非常好。

相关文章

农村什么赚钱(这4种买卖在农村可能最有前景)

农村什么赚钱(这4种买卖在农村可能最有前景)

对于农民来说,要是创业的话,搞养殖业是比较合适的,因为一般来说,农民家里的宅基地面积都不会很小,养殖动物还是有空间的。那么在2019年养殖哪些特色项目赚钱多?下文小编就给各位介绍四个养殖前景乐观的项目...

暴食七宗罪指的是什么(七宗罪指的是什么意思)

  1995年,由大卫芬奇指导,布拉德皮特,凯文史派西,摩根弗里曼佳選领衔主演的电影《七宗罪》问世,电影描述的是在一个大都市中造成连环杀人案件,死者恰好都是犯了天主规中的七种罪过的人。凶犯故作高深的作...

黑客帝国4史密斯帮尼奥(黑客帝国4 史密斯)

黑客帝国4史密斯帮尼奥(黑客帝国4 史密斯)

本文导读目录: 1、对于《黑客帝国4》这部电影,你作何评价? 2、《黑客帝国4》上映一个月倒计时,救世主究竟为什么会复活? 3、黑客帝国4深度解析 4、22年后,《黑客帝国4》重归,母体和...

怎么在拼多多开网店直播(申请条件及开通流程一览)

  拼多多直播管理权限已经全量对全部符合规定的店家对外开放,店家只需将“拼多多卖家版”升级至最新版(ios 2.6.1、安卓系统 2.6.0),就可以做直播了;   未启用的存有下列状况,请尽早提高销...

在哪里找黑客靠谱怎么找黑客帮忙盗

几周前,黑客利用 IoT-botnet 发起了一场针对物联网设备的大规模DDoS 攻击,导致了各种智能设备的瘫痪,这让人们更加重视物联网的安全问题。 根据美国《纽约时报》发布的一篇题为《 IoT G...

美国黑客叛逃(美国通缉黑客)

美国黑客叛逃(美国通缉黑客)

那些在科幻电影中叛逃的机器人有哪些 第9名:《霹雳五号》,全球票房:4060万美元本片是很多中国大龄观众的童年回忆,曾多次在内地电视台播出,讲述一台有着机械手臂的军用履带机器人,闯入一个普通家庭后发生...