91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

磐安县| 肇州县| 休宁县| 裕民县| 柏乡县| 霸州市| 乡宁县| 敦煌市| 特克斯县| 收藏| 革吉县| 南靖县| 阿瓦提县| 定远县| 中卫市| 泰宁县| 滦平县| 雷州市| 黄陵县| 日照市| 湄潭县| 靖远县| 固原市| 嘉峪关市| 东海县| 沂南县| 如皋市| 上蔡县| 双峰县| 安康市| 班玛县| 岑溪市| 云龙县| 龙里县| 瓦房店市| 海淀区| 资阳市| 蒙山县| 屯留县| 江华| 拜泉县|