亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中input()函數漏洞及與raw_input()函數區別

發布時間:2020-05-11 20:59:30 來源:網絡 閱讀:4563 作者:菜鵝小生 欄目:安全技術

Python中input()函數漏洞

一、函數簡介:

input()函數是python中的內置函數,函數作用是從stdin中讀取數據

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

1、 input()函數,能夠自動的識別出輸入的類型(str,int,fload);
Python中input()函數漏洞及與raw_input()函數區別
raw_input()函數,完全默認為str字符串類型
Python中input()函數漏洞及與raw_input()函數區別
2、 input()函數如果接收的是數學計算式,會自動執行得到結果(漏洞產生的原因)
raw_input()函數則會將輸入的以字符串形式顯示
例:
Python中input()函數漏洞及與raw_input()函數區別
輸入3+2的字符串,input()函數處理后,得到5;
而raw_input()函數則不會出現這種問題
Python中input()函數漏洞及與raw_input()函數區別
三、input()函數產生漏洞的原因
此函數會將stdin輸入的內容當做python代碼去執行(就像執行計算式一樣,將其看做python代碼,通過計算返回結果)。如果我們將輸入的結果是需要查看/etc/passwd的文件內容呢?顯然這里的漏洞還是不小的。接下來我們演示一下。
首先我們要清楚,在python中如何去調用系統命令。這個有很多方法,就不在一一解釋,朋友們可以去百度一下。我這里是利用的os模塊的system()方法。
實驗結果:
Python中input()函數漏洞及與raw_input()函數區別
import():是python中的內置函數,同語法import 相同,都是調用模塊
system()就是os模塊中的方法,此方法用來調用系統命令
cat /etc/passwd 系統命令,用來查看文件/etc/passwd的內容
四、CTF例題實戰
題目來源:https://junior.stillhackinganyway.nl/challenges?chal=13#challenge-information
題目內容:
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()函數漏洞及與raw_input()函數區別

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桦甸市| 阿鲁科尔沁旗| 兰溪市| 米易县| 于都县| 嵊泗县| 积石山| 衢州市| 岗巴县| 肇州县| 贵港市| 凤庆县| 志丹县| 滦南县| 平湖市| 亳州市| 锡林郭勒盟| 南漳县| 新野县| 秭归县| 新巴尔虎左旗| 宁远县| 宜阳县| 寿光市| 简阳市| 金堂县| 滨州市| 扎赉特旗| 潞城市| 类乌齐县| 常宁市| 邯郸市| 利川市| 夏河县| 安陆市| 托克托县| 瓮安县| 平乡县| 简阳市| 比如县| 德惠市|