[一起玩蛇】Python代码审计中的器II"

admin 2026-11-01 02:22:37 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

[一起玩蛇】Python代码审计中的器II

原创

aerfa
aerfa

我的安全视界观

2018年5月12日 14:22

去阅读

在【一起玩蛇】Python代码审计中的那些器I中,已经对一些常见的python安全知识与代码审计工具进行介绍,其中包括bandit、pyvulhunter、cobra,此外本篇将继续分享另一款工具pyt的使用心得。

在此之前,回顾一下Python代码审计的一些资源:

  • Python安全编码和代码审计(http://xxlegend.com/2015/07/30/Python%E5%AE%89%E5%85%A8%E7%BC%96%E7%A0%81%E5%92%8C%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/)
  • Python eval的常见错误封装及利用原理(http://xxlegend.com/2015/07/31/Python%20eval%E7%9A%84%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF%E5%B0%81%E8%A3%85%E5%8F%8A%E5%88%A9%E7%94%A8%E5%8E%9F%E7%90%86/)
  • Code Review For Python-Based Web Apps(Code Review For Python-Based Web Apps)
  • Django 安全最佳实践(http://www.atjiang.com/2scoopsdjango1.8-26-security-best-practices/)

1、一起读书


首先,依旧是一些零碎的读书笔记分享,更多地,留给大家思考与回味。

在困惑,迷惘,徘徊,失望......各种悲观消极情绪出现的时候,总想一个人静静,喜欢不时地仔细思考,然后随手翻阅一番诸葛亮的《诫子书》以作警醒:

夫君子之行:

静以修身,俭以养德。

非淡泊无以明志,非宁静无以致远。

夫学须静也,才须学也。

非学无以广才,非静无以成学。

淫慢则不能励精,险躁不能治性。

年与时驰,意与岁去。

遂成枯落,多不接世。

悲守穷庐,将复何及!

2、系统部署


pyt是一款基于控制流、定点、数据流分析的python web应用静态分析软件,可以检测出命令执行、SQL注入、跨站脚本攻击、目录遍历等常见web漏洞。但在实际的使用场景中,并没有发现其强大的漏洞检测功能,相反地,并不是那么有效。

2.1 项目地址

项目地址:

https://github.com/python-security/pyt

2.2 环境部署

2.2.1 py3env

查看kali中是否存在py3相关文件夹

ls/usr/bin/python

在/home/Yxiu/下创建py3虚拟环境,目录为py3env

virtualenv -p/usr/bin/python3.6 py3env

激活python3环境

source /home/Yxiu/py3env/bin/activate

2.2.2 安装依赖包

进入根目录/home/Yxiu,下载源码

git clonehttps://github.com/python-security/pyt.git

进入源码文件夹下,安装依赖包

2.2.3 安装pyt

python setup.pyinstall

2.3 静态扫描

在项目文件夹中,执行pyt -h,查看使用方法

如果被扫描文件在本地且没有建项目,那么只能是用-f文件进行单个文件的扫描:

python -m  pyt -f  /home/Yxiu/Desktop/../../xx.py

2.4 结果分析

扫描结果便于查看,若不存在漏洞则显示: 0 vulnerabilities

3、漏洞靶场


当面对扫描结果 0 vulnerabilities时,开始有点产生质疑。于是乎,几经周折之后找到一款简易的python靶场--DSVW轻量级漏洞靶场(https://github.com/stamparm/DSVW)。

直接pull项目到本地,查看文件夹内容特别简单,仅一个py文件

在python 2.6.x或2.7.x环境中,直接运行即可启动漏洞环境

访问本地地址+端口65412,即可出现漏洞靶场,其中包括三种类型的SQL注入、万能密码、四种XSS、XML实体攻击…各种漏洞尽在<100Loc 的代码中。此外,每个漏洞都会有exp和漏洞info,对于使用者来说极其便利。

比如本地XML实体攻击:

http://127.0.0.1:65412/?xml=%3Croot%3E%3C%2Froot%3E

本地XML实体攻击的Exploit:

http://127.0.0.1:65412/?xml=%3C!DOCTYPE%20example%20%5B%3C!ENTITY%20xxe%20SYSTEM%20%22file%3A%2F%2FC%3A%2FWindows%2Fwin.ini%22%3E%5D%3E%3Croot%3E%26xxe%3B%3C%2Froot%3E

经受住各种漏洞环境检验的工具,才是好兵器。于是乎,忍不住想用DSVW来检验pyt的静态代码扫描功能。

明明是千疮百孔的漏洞靶场,竟然也是0漏洞!

4、总结回顾


无论是从自研系统的扫描结果,还是漏洞靶场DSVW,pyt的表现并不好。除了目前没有发现任何问题外,它对文件扫描只支持单文件,所以对于复杂的跨文件函数调用、类,效果堪忧。但是为什么在github上的star和fork如此之高?我想,还值得继续从源码层面来研究。

只有经过试错验证和所谓的“踩坑”,才能有所收获。

如果你有发现什么问题或有更好的想法,不防留言来撩~

往期回顾


【1】【安全测试】Android APP安全测试之敏感信息本地存储

【2】【渗透技巧】搜集SRC信息中的“技术活儿”

【3】【渗透技巧】浅谈常规渗透瓶颈,实例发散思维突破

【4】【漏洞赏析】安全运维那些洞

【5】【漏洞赏析】安全业务那些洞

【6】【应急响应】redis未授权访问致远程植入挖矿脚本(防御篇)

【7】【应急响应】redis未授权访问致远程植入挖矿脚本(攻击篇)

【8】【应急响应】redis未授权访问致远程植入挖矿脚本(完结篇)

【9】【企业安全】企业安全建设需求

【10】【企业安全】企业安全威胁简述

【11】【企业安全】企业安全架构建设

【12】【企业安全】企业安全项目-测试环境内网化

【13】【企业安全】企业安全项目-Github信息泄露专项

【14】【企业安全】企业安全项目-短信验证码安全

【15】【企业安全】企业安全项目-前端绕过专项整改

【16】【一起玩蛇】python武器库的打开方式

【17】【一起玩蛇】那些漏洞扫描器中的资产处理

【18】【一起玩蛇】python代码审计中的那些器I

【19】【挖洞技巧】那个简单的威胁情报

【20】【一起玩蛇】Nodejs代码审计中的器

    [一起玩蛇】Python代码审计中的器II" 网络安全文章

    [一起玩蛇】Python代码审计中的器II"

    本文介绍了Python代码审计工具pyt的部署与使用体验。作者详细说明了pyt的安装步骤,包括创建虚拟环境、安装依赖及静态扫描方法。通过自研系统和DSVW漏洞靶场测试,发现pyt检测效果不佳,对存在多种漏洞的靶场也显示0漏洞,且仅支持单文件扫描,对跨文件调用支持差。文章提供了工具使用经验与踩坑记录,对安全人员评估pyt工具有参考价值。
    如何学习这么多的安全文章(理论篇)" 网络安全文章

    如何学习这么多的安全文章(理论篇)"

    本文提出在网络安全领域高效学习安全文章的方法论,强调围绕当下问题聚焦学习、注重质量而非数量、筛选优质资源,并推荐使用印象笔记简藏插件保存文章。学习过程需整合同类文章补全知识体系,边看边记边思考,通过实践将理论转化为能力,并推荐费曼学习法等提升效率的书籍及sec-wiki等安全资源。
    关于勇气的一次突破" 网络安全文章

    关于勇气的一次突破"

    作者记录中秋国庆假期在阳澄湖华谊影视城完成蹦极的个人突破经历。文章阐述蹦极动机源于内心向往、释放焦虑、为孩子树立榜样及开启新阶段,详细描述报名前淡定、候跳恐惧、边缘惶恐到跳下释放的完整心路历程,并总结出参照经验、遵从内心、家人支持与同行鼓励等启示,以此激励未来更勇敢突破自我。
    评论:0   参与:  0