真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python中input()函數(shù)漏洞及與raw_input()函數(shù)區(qū)別-創(chuàng)新互聯(lián)

Python中input()函數(shù)漏洞

一、函數(shù)簡介:

成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!專注中小微企業(yè)官網(wǎng)定制,成都做網(wǎng)站、網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè),塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。
input()函數(shù)是python中的內(nèi)置函數(shù),函數(shù)作用是從stdin中讀取數(shù)據(jù)

喜歡python2的朋友都知道python中有兩個常見的輸入函數(shù):input()函數(shù)和raw_input()函數(shù),但是我們在寫腳本使用輸入函數(shù)的時候,往往會使用raw_input()函數(shù)。這是為什么?因為input()函數(shù)在python2中擁有非常大的安全隱患。所以當(dāng)我們自學(xué)python的時候,課本上,老師說的都是推薦raw_input()函數(shù)。Input()函數(shù)具體存在什么安全隱患?慢慢道來!
二、input()函數(shù)與raw_input()函數(shù)的區(qū)別

1、 input()函數(shù),能夠自動的識別出輸入的類型(str,int,fload);
Python中input()函數(shù)漏洞及與raw_input()函數(shù)區(qū)別
raw_input()函數(shù),完全默認(rèn)為str字符串類型
Python中input()函數(shù)漏洞及與raw_input()函數(shù)區(qū)別
2、 input()函數(shù)如果接收的是數(shù)學(xué)計算式,會自動執(zhí)行得到結(jié)果(漏洞產(chǎn)生的原因)
raw_input()函數(shù)則會將輸入的以字符串形式顯示
例:
Python中input()函數(shù)漏洞及與raw_input()函數(shù)區(qū)別
輸入3+2的字符串,input()函數(shù)處理后,得到5;
而raw_input()函數(shù)則不會出現(xiàn)這種問題
Python中input()函數(shù)漏洞及與raw_input()函數(shù)區(qū)別
三、input()函數(shù)產(chǎn)生漏洞的原因
此函數(shù)會將stdin輸入的內(nèi)容當(dāng)做python代碼去執(zhí)行(就像執(zhí)行計算式一樣,將其看做python代碼,通過計算返回結(jié)果)。如果我們將輸入的結(jié)果是需要查看/etc/passwd的文件內(nèi)容呢?顯然這里的漏洞還是不小的。接下來我們演示一下。
首先我們要清楚,在python中如何去調(diào)用系統(tǒng)命令。這個有很多方法,就不在一一解釋,朋友們可以去百度一下。我這里是利用的os模塊的system()方法。
實驗結(jié)果:
Python中input()函數(shù)漏洞及與raw_input()函數(shù)區(qū)別
import():是python中的內(nèi)置函數(shù),同語法import 相同,都是調(diào)用模塊
system()就是os模塊中的方法,此方法用來調(diào)用系統(tǒng)命令
cat /etc/passwd 系統(tǒng)命令,用來查看文件/etc/passwd的內(nèi)容
四、CTF例題實戰(zhàn)
題目來源:https://junior.stillhackinganyway.nl/challenges?chal=13#challenge-information
題目內(nèi)容:
This program consists of only 4 words, and still they've made a mistake. Read the flag from
/home/small/flag
nc small.stillhackinganyway.nl 1337*
題目附帶了個腳本:
Python中input()函數(shù)漏洞及與raw_input()函數(shù)區(qū)別

這個題目就是利用所說的input()函數(shù)漏洞。
Python中input()函數(shù)漏洞及與raw_input()函數(shù)區(qū)別
輸入input(),讓腳本中的input()函數(shù)去執(zhí)行我們輸入的input()函數(shù)。這樣我們就可以再次輸入我們構(gòu)造的查看flag的語句:
__import__('os').system('cat /home/small/flag')
五、漏洞修復(fù)
在python2中,推薦使用raw_input()函數(shù),盡量不要使用input()函數(shù),在python3中,input()函數(shù)被默認(rèn)改為默認(rèn)輸入為字符串。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


本文名稱:Python中input()函數(shù)漏洞及與raw_input()函數(shù)區(qū)別-創(chuàng)新互聯(lián)
當(dāng)前地址:http://weahome.cn/article/ieihd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部