iT邦幫忙

2024 iThome 鐵人賽

DAY 27
0
Python

讓Python與資安共舞系列 第 27

對Web應用進行滲透測試(一)

  • 分享至 

  • xImage
  •  

目前的網際網路上大部分都使用了HTTP(Hyper Text Transfer Protocal,超文字傳輸協定),大名鼎鼎的Google也推出了一款以HTTP為基礎的作業系統Chrome OS,只需要一個瀏覽器就可以完成作業系統的功能。如果要將應用程式發布到網際網路上供人使用,就可以使用Web服務,這種程式也被稱為Web應用,而這種應用使用的就是HTTP。

HTTP簡介
HTTP是一個無狀態的明文傳輸協定,這表示每次的請求都是獨立的,執行的情況和結果與前後的請求是沒有關係的。當初設計這個協定考量到的只有便捷,並沒有考慮到安全,HTTP的傳輸方式就是瀏覽器會根據使用者在網址輸入的內容項目標伺服器發送請求,目標伺服器再收到請求後會列出回應,將資料發回給瀏覽器。

對Web程式進行滲透測試所需模組
在Python中提供了大量用來處理HTTP的模組,這些模組的功能之間可能有重合,所以經常會看到有些相同功能的程式卻使用了不同的模組檔案。

  • urllib2函數庫的使用
    這個函數庫在Python3中被分成urllib.request和urllib.error兩個類別,先匯入函數庫後發送GET請求
    https://ithelp.ithome.com.tw/upload/images/20241017/20169331JIJBG0ek22.png
    結果如下:
    https://ithelp.ithome.com.tw/upload/images/20241017/201693318wuwdnXTkE.png

info()
https://ithelp.ithome.com.tw/upload/images/20241017/20169331bPAbpRh1kf.png

getcode()
https://ithelp.ithome.com.tw/upload/images/20241017/201693316fOVeUIond.png

geturl()
https://ithelp.ithome.com.tw/upload/images/20241017/20169331Pu7kFMxmR3.png

處理HTTP表頭
這邊我將程式碼寫成一個檔案,這個程式碼利用httplib2模組中的request方法向目標伺服器發送一個GET類型的請求,並將收到的回應顯示在螢幕上。
https://ithelp.ithome.com.tw/upload/images/20241017/20169331WyDbr83Ygt.png

這裡使用HTTP函數建置了一個httplib2物件,實際完成工作的是這個物件的request函數,這個函數以URL位址和HTTP方法作為參數,傳回兩個值,一個是字典類型的HTTP表頭檔案,另一個是請求位址的HTML頁面。
https://ithelp.ithome.com.tw/upload/images/20241017/20169331sFYdSS45gQ.png
使用httplib2獲得的HTTP表頭檔案如上圖所示。

處理cookie
目標網站在主機所儲存的不起眼的檔案-Cookie。多家網路公司在使用者不知情的狀況下透過Cookie擷取使用者資訊,洩漏使用者個人隱私。當使用者造訪網站時,該網站會透過瀏覽器網站建立自己的Cookie,它負責儲存使用者在該網站的一些輸入資料與紀錄,當使用者再次瀏覽該網站時,網站就可以透過瀏覽器查探Cookie,並以此是別使用者身分。
這邊先用http.cookiejar來取得造訪www.baidu.com 所產生的cookie:
https://ithelp.ithome.com.tw/upload/images/20241017/20169331t6A6bbZB2M.png

先創建一個cookiejar和一個opener後安裝cookiehandler,接著使用opener發起請求,最後將cookie列印出來。結果如下:
https://ithelp.ithome.com.tw/upload/images/20241017/20169331UwhX9dl3e0.png

今天先學到這邊,這只是第一部分,明天會學習後半部。


上一篇
遠端控制工具
下一篇
對Web應用進行滲透測試(二)
系列文
讓Python與資安共舞30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言