Python2 input函数漏洞利用

news/2025/3/18 16:47:20/文章来源:https://www.cnblogs.com/cha0s32/p/18232775

在 Python2 中,input 函数相当于

eval(raw_input(prompt))

如果输入的数据是一个恶意的表达式,存在任意代码执行的风险

实例演示

  • 字符串拼接

image-20240605115652670

  • 命令执行
__import__('os').system('cat /etc/passwd')
image-20240605120157892

靶场利用

在 vulnhub bottleneck 靶机中,遇到 input 漏洞利用的情况

# 核心代码foreach($blacklist as $elem){if(strstr($imagefile, $elem) !== FALSE)$isblocked = TRUE;
}
// report the intrusion to the soc and save information locally for further investigation
if($isblocked){$logfile = 'intrusion_'.$timestamp;$fp = fopen('/var/log/soc/'.$logfile, 'w');fwrite($fp, "'".$imagefile."'");fclose($fp);exec('python /opt/ids_strong_bvb.py </var/log/soc/'.$logfile.' >/tmp/output 2>&1');print_troll();exit();
}

代码的意思是参数输入要是包含黑名单的字符串中,则将输入输出到日志文件中

我们不知道 ids_strong_bvb.py 的内容是什么,但靶机中存在文件包含漏洞可读取 /tmp/output 的内容

由于靶机中还存在定时清空 /tmp/output 的程序, 所以还需要先 读一个包含黑名单字符串的路径,在立刻读取 output 文件,方可读取

如图所示,先读取这两个路径

image-20240605121442701

输出为:

image-20240605121457819

/etc 后加单引号使 程序报错

image-20240605121611763

知道程序中包含 input 参数,经由上面输出推测得,用户输入由input函数处理

由报错可以知道闭合规则,将payload放到 /etc' and payload and '中即可

image-20240605121852275

输出:

image-20240605121924908

更改system里面的命令,可造成任意命令执行,直接getshell,进行下一步提权。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/720282.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python3基本语法(新)

目录基本语法输出print()格式化输出标识符import关键字保留字(关键字)注释多行注释1、单引号()2、双引号(""")缩进空行同一行显示多条语句等待用户输入inputimport 与 from...import 基本语法 输出print() print() 是一个让计算机在屏幕上进行输出的指令.它…

Python数据类型(新)

目录数据类型类型查看同时多个变量赋值标准数据类型1.数字(Number)2.字符串3.bool(布尔类型)4.元组元组的运算+ 运算+=运算* 运算元组的删除5.列表(List)查找列表修改列表列表的切片列表是可以修改的列表的追加列表的插入列表的连接列表的删除列表的清空列表的复制6.字典查找字…

[Tools] 使用 Charles 对 Android 应用进行 HTTPS 数据抓包

抓包工具 Charleshttps://www.charlesproxy.com/操作步骤 1. 在电脑上安装 Charles 客户端并进行配置 1.1 设置 Proxy Setting1.2 设置 SSL Proxing Setting1.3 重启 Charles 客户端 2. 在手机上安装 Charles 证书 2.1 将手机与电脑连接到同一 WIFI 网络 2.2 设置手机 WIFI 为…

Tita的OKR:如何开好 OKR 季度回顾会议?

你刚刚度过了一个美好的季度, 你意识到有些人已经接受了OKR,有些人还没有。 有些人很沮丧,因为他们发现每周衡量他们的OKR很困难,其他人则提到,这对他们保持正轨有很大帮助。在这个季度,你学到了很多东西,感觉你取得了一些出色的进展。 但是,你如何确保下一季度的工作更…

算法金 | 一文读懂K均值(K-Means)聚类算法

​大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣]1. 引言 数据分析中聚类算法的作用 在数据分析中,聚类算法用于发现数据集中的固有分组,通过将相似对象聚集在一起来揭示数据的结构和模式。这种方法常用于市场细分、社交…

[Proxy] 使用 Charles 对 Android 应用进行 HTTPS 数据抓包

抓包工具 Charleshttps://www.charlesproxy.com/操作步骤 1. 在电脑上安装 Charles 客户端并进行配置 1.1 设置 Proxy Setting1.2 设置 SSL Proxing Setting1.3 重启下 Charles 客户端 2. 在手机上安装 Charles 证书 2.1 将手机与电脑连接到同一 WIFI 网络 2.2 设置手机 WIFI …

PyQT5之QComboBox

import os.path from PyQt5 import QtWidgets from PyQt5 import QtCore, QtGui import sys import cv2class SpinBoxPanel(QtWidgets.QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)select_btn = QtWidgets.QPushButton("图像选择&quo…

Mock 工具使用 - 模拟弱网测试

在当今移动互联网的时代,网络的形态非常多变,不光有 2G, 3G,4G,不同的制式、不同的速率,让我们移动应用运行的场景更加丰富。而且移动产品使用场景非常多变,如近地铁,上公交,进电梯,进山区等是的弱网测试显得尤为重要。 对于弱网的数据定义,不同的应用所界定的含义不…

项目整合管理主要输入、工具、输出

一、制定项目章程: 编写一份正式批准并授权项目经理使用组织资源、进行项目规划、执行和控制的文件。 作用: 1.明确项目与组织战略目标间的直接联系 2.确立项目的正式地位 3.展示组织对项目的承诺 1.1输入: 1.立项管理文件:业务视角描述必要性,决定是否值得投资,包括商业…

BOM是什么

BOM(Browser Object Model)#一、是什么 BOM (Browser Object Model),浏览器对象模型,提供了独立于内容与浏览器窗口进行交互的对象 其作用就是跟浏览器做一些交互效果,比如如何进行页面的后退,前进,刷新,浏览器的窗口发生变化,滚动条的滚动,以及获取客户的一些信息如:浏…

Wgpu图文详解(01)窗口与基本渲染

写在前面 如果对Rust与Wgpu比较关注的同学可能在网络上搜到过@sotrh国外大佬编写的《Learn Wgpu》,以及国内大佬@jinleili的优秀翻译作品《学习 Wgpu》。这些学习教程质量很高,在我学习Wgpu的过程中给了很大的帮助。那为什么还有我这个系列的文章呢?首先,大佬的系列目前win…

vue 项目中使用v-permission 实现按钮级权限控制

在使用 vue-element-admin 框架进行开发时,您可以通过自定义指令来实现按钮级的权限控制。这个自定义指令可以根据用户的权限动态地控制按钮的显示。以下是一个详细的实现步骤: 1、在 src 目录下按照如下目录结构,创建一个权限文件,例如 permission.js: 目录结构:src/dir…