• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python之eval()函数危险性浅析

Python之eval()函数危险性浅析

作者:shichen2014 字体:[增加 减小] 来源:互联网

shichen2014 通过本文主要向大家介绍了python中eval函数,python eval函数,python eval函数用法,python中eval,python中eval的用法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一般来说Python的eval()函数可以把字符串“123”变成数字类型的123,但是PP3E上说它很危险,还可以执行其他命令!

对此进行一些试验。果然,如果python写的cgi程序中如果使用eval()而非int()来转换诸如年龄这样的输入框中的内容时是非常危险的。不仅可以看见列出系统的全部文件,还可以执行删除文件,察看文件源代码等危险操作!

试着写了个程序,想把本地的脚本文件同过这样的形式一行一行的写到服务器的某个文件里,可最后失败在无法输入换行符"/n",在提交的语句里只要有换行符,就会出现EOL的出错提示,换了编码方式还是没能成功。
 
网页里有一个提交名字的窗口,这里只是以改它为例,否则名字是不会用eval函数转换的,不过年龄到是很容易出问题。这个文件(http://localhost/tutor4.html)导入了os。

line1 = "Hello, %s." % eval(form['user'].value)
</div>

(1)

os.system('del * /q') #删除当前目录下所有文件(不包括文件夹)。
</div>

os.system调用当前系统的命令(如windows)

/q
指定强制状态。不提示您确认删除。

(2)若删除文件夹,使用rmdir

/s
删除指定目录和所有子目录以及包含的所有文件。使用 /s 来删除目录树。

/q
在安静模式中运行 rmdir。不经确认即删除目录。

os.system('rmdir d:/workspace /s/q')
</div>

(3)列出所有文件os.system('dir')。因为成功执行了dir命令后,系统返回0,所以看到的返回内容只能是Hello,0.而在服务器上,倒是真的列出来了,如果有日志,可能被发现。提交os.system('dir >dir.txt'),那么访问http://localhost/dir.txt那么所有的文件和文件夹都暴露了,想看源代码吗?如果再使用os.system('type target.py').命令如果成功完成同样会返回Hello, 0.的。难道再放进一个文件,再访问那个文件吗?open('target.py').read()

由此,可以在列出和察看其他文件夹里面的内容了。

如果没干别的坏事,那么可删除dir.txt以免被人发现了。os.system('del dir.txt /q')

导入os并执行命令:

__import__('os').system('dir >dir.txt')
</div> </div>

您可能想查找下面的文章:

  • Python之eval()函数危险性浅析

相关文章

  • 深入讲解Python函数中参数的使用及默认参数的陷阱
  • 跟老齐学Python之有容乃大的list(3)
  • python通过ftplib登录到ftp服务器的方法
  • python检测某个变量是否有定义的方法
  • win7 下搭建sublime的python开发环境的配置方法
  • Python多线程同步Lock、RLock、Semaphore、Event实例
  • Python模块搜索概念介绍及模块安装方法介绍
  • python安装mysql-python简明笔记(ubuntu环境)
  • python实现应用程序在右键菜单中添加打开方式功能
  • 安装ElasticSearch搜索工具并配置Python驱动的方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python 读写、创建 文件的方法(必看)
    • python使用mysqldb连接数据库操作方法示例详解
    • 详解Python中的正则表达式的用法
    • 在Python的Django框架中实现Hacker News的一些功能
    • Python中遇到的小问题及解决方法汇总
    • Python的设计模式编程入门指南
    • Python中函数的用法实例教程
    • python中安装模块包版本冲突问题的解决
    • Python装饰器使用实例:验证参数合法性
    • python获取指定时间差的时间实例详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有