使用python3從零開始寫安全指令碼(1)

2022-07-18 06:00:14 字數 1728 閱讀 8544

寫在前面

在滲透中經常要用到指令碼來驗證漏洞,所以我打算根據漏洞原理,從零開始寫一系列指令碼。但是python2和python3中還是比較糾結,python2的urllib2顯然對這方面更友好一些,但是python2已經是上乙個時代的產物,所以這邊準備使用python3進行編寫。

環境配置

首先要安裝ide,這裡我選用的pycharm,不懂的朋友可以參考這一篇部落格

然後我們再安裝python3.7,自動新增好環境變數以後用pip安裝環境變數

requests的使用

首先我們嘗試用requests獲取乙個網頁的資訊

我們要匯入requests模組

import requests
然後嘗試獲取某個網頁

r = requests.get('

')

最後輸出結果

這就用python3完成了最簡單的get請求了,但是如果我們要傳送post請求要怎麼辦呢?為此我們先搭建乙個php環境用來做python指令碼的測試。

<?php 

echo 'post php test';

echo

$_post['a'];

然後我們先執行

import

requests

r = requests.get('

')print(r.text)

這個時候的輸出結果是

post php test

然後我們嘗試通過post的方式提交資料到post.php這個檔案,這個時候我們使用的是requests.post,而這個函式則需要帶上post的資料

import

requests

r = requests.post('

',data=)

print(r.text)

輸出結果

post php testrequests post test

我們會發現用於獲取結果的是r.text,但是在安全工具的開發中,我們往往有時候不需要獲取這些結果集,只需要獲取他的狀態,比如目錄掃瞄工具,我們只需要獲取他的狀態碼。

import requests

r = requests.post('

',data=)

print(

'網頁的響應狀態是:

'+str(r.status_code))

print(

'網頁的內容是:

'+str(r.text))

print(

'網頁的編碼是:

其中response物件有以下屬性:

屬性說明

r.status_code

http請求的返回狀態,若為200則表示請求成功

r.text

http響應內容的字串形式,即返回的頁面內容

r.encoding

從http header 中猜測的相應內容編碼方式

從內容中分析出的響應內容編碼方式(備選編碼方式)

r.content

http響應內容的二進位制形式

r.headers

http的響應頭內容,可以具體到某個響應頭的值

從零開始的Python 3

學!都可以學!1.直接放例項吧qaq 下為求階乘的遞迴 def jc n if n 1 or n 0 return 1 n n jc n 1 return n num jc 10 print num 2.然而函式可以訪問全域性變數但不能修改全域性變數。在函式內宣告全域性變數後才能修改 num 1 d...

從零開始 Python3 學習筆記

感覺有必要學習一門計算機語言,之前學過的計算機語言早已經還給老師了,現在想想實在是浪費 現在算是從零開始學了 在網上查了一下python入門比較簡單,應用面比較廣,好吧,於是就選它吧 短期的目標是做乙個簡單的爬蟲,爬取某網頁上的資料 網上看了一下案例 importurllib.request url...

Python3爬蟲從零開始 庫的安裝

抓取網頁之後下一步就是從網頁中提取資訊。提取方式有很多種,可以利用正規表示式進行提請,但是相對而言比較麻煩繁瑣。現在有很多強大的解析庫供我們使用,如lxml,beautiful soupp,pyquery等。本節對其安裝進行介紹。lxml的安裝 lxml支援html和xml的解析,支援xpath解析...