代理池工具測試和後續利用

語言: CN / TW / HK

文章來源|MS08067 Web漏洞挖掘班 第3期

本文作者: Cream (web漏洞挖掘班講師)

本文章僅當做教學和學習交流之用,請勿使用文中工具做非法測試!文中有不當之處,煩請指出,謝謝!

安全演練和某些特殊場景下均需要代理池來輔助測試,代理池可以理解多個代理IP的集合。代理池的目的是防止被封鎖,其基本的工作機制是從各大代理網站抓取免費IP或者以購買的方式獲取,將這些IP集合存放在數據庫或者文本中,後續的步驟就是測試有效性和後續利用。

文章中主要測試的工具是 proxy_pool ,其主要功能為定時採集網上發佈的免費代理驗證入庫,定時驗證入庫的代理保證代理的可用性,提供API和CLI兩種使用方式。其中CLI模式主要用於擴展代理源以增加代理池IP的質量和數量,API模式主要用於調用代理池的IP源,其返回值是JSON格式,後續使用需要處理。

工具鏈接:

https://proxy-pool.readthedocs.io/zh/latest/

測試使用:

#下載工具
git clone git@github.com:jhao104/proxy_pool.git #或者在releases 中下載均可。
cd proxy_pool
#安裝依賴:
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
#測試
python proxyPool.py -h


Bash

按需求修改配置文件setting.py

HOST = "0.0.0.0"
##這裏是當前監聽的主機IP,可直接使用0.0.0.0。
PORT = 5010
###監聽的端口,主機內不衝突就行。
DB_CONN = 'redis://:@127.0.0.1:6379/0'
##代理池使用的數據庫所在的位置,可支持Redis和ssdb,修改的方式如下:
######Redis: redis://:[email protected]:port/db
######Ssdb: ssdb://:[email protected]:port
###我本地Redis沒有設置密碼,不寫即可
# proxy table name
TABLE_NAME = 'use_proxy'
# ###### config the proxy fetch function ######
PROXY_FETCHER = [
"freeProxy01"
,"freeProxy02"
,"freeProxy03"
,"freeProxy04"
,"freeProxy05"
,"freeProxy06"
,"freeProxy07"
,"freeProxy08"
,"freeProxy09"
,"freeProxy10"
]


Bash

在github上也寫的很清楚,具體也參考 README.md

另外也可以使用docker來運行該環境:

docker pull jhao104/proxy_pool#拉取鏡像資源
docker run --env DB_CONN=redis://:password@ip:port/0 -p 5010:5010 jhao104/proxy_pool:2.4.0#運行環境,注意修改redis的信息


Bash

收集IP資源:python proxyPool.py schedule

注意在收集IP的時候要開啟Redis服務器。等獲取一段時間後可查看Redis數據保存情況。

調用代理池中IP:python proxyPool.py server

http://target_IP:5010,頁面顯示內容如下,其中使用不同的參數得到的處理結果。

另外在獲取代理IP時可以過濾掉HTTPS的代理:?type=https,具體的介紹不多説,可以參考reedme.md.

代理池測試:使用如下github提供的Python測試代碼(做了一點修改!)

# -*- coding: utf-8 -*-
from pip import main
import
requests
def get_proxy():
return requests.get("http://127.0.0.1:5010/get/").json()
def delete_proxy(proxy):
requests.get("http://127.0.0.1:5010/delete/?proxy={}".format(proxy))


# your spider code
def getHtml():
# ....
retry_count = 5
proxy = get_proxy().get("proxy")
while retry_count > 0:
try:
html = requests.get('http://1XXXXXXXX.48/', proxies={"http": "http://{}".format(proxy)})
print("使用"+proxy+"請求成功!!!")
# 使用代理訪問
return
htmlexcept Exception:
retry_count -= 1
# 刪除代理池中代理
delete_proxy(proxy)
return None
getHtml()


Python

注意:http://1XXXXXXXX.48/是VPS服務器,並開啟日記記錄功能。python proxy_test.py

可知當前的請求是113.125.152.179:8888,也即意味着當前的請求使用的IP是它。在API接口終端可以看到請求的記錄,如下所示。

打開apache 的日誌文件查看請求情況。

到這裏就可以感受到代理池的基本功能,好多網絡爬蟲就是使用代理池,在HVV中掃描目錄、SQLmap注入等場景下都需要使用代理池。瀏覽器中如果要使用代理池呢?需要一箇中間工具將代理池的IP再次代理到瀏覽器中,這裏大家使用或者測試的工具有A utoProxy 和JCRandomProxy。

Auto Proxy 是一個自動切換代理的一個瀏覽器插件, 專為測試人員使用,資源地址: https://github.com/cleverbao/AutoProxy

JCRandomProxy是配合proxy_pool項目開發的圖形化代理工具,目前支持Win、Linux和MAC,最新版本是3.3.6,資源地址: https://github.com/chroblert/JCRandomProxy

本次測試是第一個工具—Auto Proxy

下載該程序解壓並添加到瀏覽器中

設置代理池代理:

配置中心

代理池代理:將 http://127.0.0.1:5010/all/ 設置遠程地址中,並測試

配置成功之後,點擊面板中的“隨機代理”即可刷新使用的代理:

注意:收集過來的代理可能不是很穩定,如果無法使用可以點擊面板中的“刪除代理”。

其他項目:

https://github.com/iamhmx/MXProxyPool
https://github.com/jhao104/proxy_pool
https://github.com/xiaobeibei26/dynamic_ip_pool
https://github.com/henson/proxypool

擴展學習小建議:

測試文中提到的第二個工具;

思考如何將代理池如何應用到目錄掃描工具或者某些漏掃工具中(直接動手操作吧)?

Cream老師主講的  

Web漏洞挖掘第3期

1.27 開班報名中~

第三期,主要突出了學員最關心的“實戰打靶”練習,第三期我們新增加了快速打點方法+腳本思路、打靶機模擬實戰等內容,並配備了專門的“實戰靶場”以供同學們練習!

最新課程目錄3 .0版

*大綱僅作為參考,會根據當期進度有所變化(加客服獲取高清課程導圖)

課程費用

每期班定價 2499 新年價: 1999 前30名送399元Web安全知識星球名額

每個報名學員都可享受一次後續任意一期課免費重聽權益 ,一次沒學懂就再來一遍,後續培訓可任選一期來聽。請有意參加培訓的學員抓緊報名!

凡是MS08067旗下任意星球學員或其他培訓課程學員,可享內部VIP價 17 99

支持支付寶、信用卡、花唄分期,對公轉賬,可開發票!

知識星球是什麼

第二期班部分學員作業

越權漏洞實戰之從越權到越軌

fastjson-cnvd-2017-02833漏洞復現

CVE-2020-2551攻擊實錄

逆向漏洞POC 一條龍

泛微 e-office v9.0任意文件上傳漏洞(CNVD-2021-49104)

聊一聊我是如何學習網絡安全的(入門階段)

使用burp插件captcha-killer識別圖片驗證碼(跳坑記)

Grafana 任意文件讀取漏洞

上課時間

開課時間1月27號 ,每週二天課,共8周21節課(42小時)

週四:19 : 30-21:30

週六: 14:00-18:00

如果無法準時參加直播課程,在線培訓的每節課程都會被錄製成視頻上傳到學員區,可隨時下載觀看。

上課方式

培訓採用 在線直播+隨堂錄播+配套教材+配套星球+課後作業

的形式,無需等待,報名後立即進入“ Web安全 ”星球開始預習。

 

你距離大佬,只差一個決定       

報名諮詢請聯繫小客服

掃描下方二維碼加入星球學習

加入後邀請你進入內部微信羣,內部微信羣永久有效!

來和5000+位同學一起加入星球學習吧!