使用python3從零開始寫安全腳本(1)


寫在前面

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

 

 

環境配置

首先要安裝ide,這里我選用的PyCharm,不懂的朋友可以參考這一篇博客

https://blog.csdn.net/u014044812/article/details/78727496

然后我們再安裝python3.7,自動添加好環境變量以后用pip安裝環境變量

 

 

requests的使用

 

首先我們嘗試用requests獲取一個網頁的信息

我們要導入requests模塊

import requests

然后嘗試獲取某個網頁

r = requests.get('http://wwww.baidu.com')

最后輸出結果

print(r.text)

然后我們嘗試運行一下代碼,它就輸出了百度的網頁內容。

這就用python3完成了最簡單的get請求了,但是如果我們要發送post請求要怎么辦呢?為此我們先搭建一個php環境用來做python腳本的測試。

<?php
echo 'post php test';
echo $_POST['a'];

然后我們先運行

import requests
r = requests.get('https://test.kolue.com/post.php')
print(r.text)

這個時候的輸出結果是

C:\Users\Mypc\AppData\Local\Programs\Python\Python37\python.exe C:/Users/Mypc/PycharmProjects/test/.idea/test.py
post php test

然后我們嘗試通過post的方式提交數據到post.php這個文件,這個時候我們使用的是requests.post,而這個函數則需要帶上post的數據

import requests
r = requests.post('https://test.kolue.com/post.php',data={'a':'requests post test'})
print(r.text)

輸出結果

C:\Users\Mypc\AppData\Local\Programs\Python\Python37\python.exe C:/Users/Mypc/PycharmProjects/test/.idea/test.py
post php testrequests post test

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

import requests
r = requests.post('https://test.kolue.com/post.php',data={'a':'requests post test'})
print('網頁的響應狀態是:'+str(r.status_code))
print('網頁的內容是:'+str(r.text))
print('網頁的編碼是:'+str(r.apparent_encoding))

 其中response對象有以下屬性:

屬性 說明
r.status_code

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

r.text

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

r.encoding

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

r.apparent_encoding

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

r.content

http響應內容的二進制形式

r.headers

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM