代理池工具测试和后续利用
2022-1-25 22:32:45 Author: mp.weixin.qq.com(查看原文) 阅读量:135 收藏

文章来源|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 nameTABLE_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 mainimportrequestsdef 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 codedef 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 NonegetHtml()
Python

注意:http://1XXXXXXXX.48/是VPS服务器,并开启日记记录功能。python proxy_test.py

可知当前的请求是113.125.152.179:8888,也即意味着当前的请求使用的IP是它。在API接口终端可以看到请求的记录,如下所示。

打开apache 的日志文件查看请求情况。

到这里就可以感受到代理池的基本功能,好多网络爬虫就是使用代理池,在HVV中扫描目录、SQLmap注入等场景下都需要使用代理池。浏览器中如果要使用代理池呢?需要一个中间工具将代理池的IP再次代理到浏览器中,这里大家使用或者测试的工具有AutoProxy和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

扩展学习小建议:

1.测试文中提到的第二个工具;

2.思考如何将代理池如何应用到目录扫描工具或者某些漏扫工具中(直接动手操作吧)?

Cream老师主讲的 Web漏洞挖掘第3期

1.27 开班报名中~

第三期,主要突出了学员最关心的“实战打靶”练习,第三期我们新增加了快速打点方法+脚本思路、打靶机模拟实战等内容,并配备了专门的“实战靶场”以供同学们练习!

最新课程目录3.0版

*大纲仅作为参考,会根据当期进度有所变化(加客服获取高清课程导图)

课程费用

每期班定价2499新年价:1999前30名送399元Web安全知识星球名额

每个报名学员都可享受一次后续任意一期课免费重听权益,一次没学懂就再来一遍,后续培训可任选一期来听。请有意参加培训的学员抓紧报名!

凡是MS08067旗下任意星球学员或其他培训课程学员,可享内部VIP价1799

支持支付宝、信用卡、花呗分期,对公转账,可开发票!

知识星球是什么

第二期班部分学员作业

上课时间

开课时间1月27号,每周二天课,共8周21节课(42小时)
周四:19:30-21:30
周六:14:00-18:00
如果无法准时参加直播课程,在线培训的每节课程都会被录制成视频上传到学员区,可随时下载观看。

上课方式

培训采用在线直播+随堂录播+配套教材+配套星球+课后作业的形式,无需等待,报名后立即进入“Web安全”星球开始预习。
 

    你距离大佬,只差一个决定       

报名咨询请联系小客服

扫描下方二维码加入星球学习

加入后邀请你进入内部微信群,内部微信群永久有效!

 

 

来和5000+位同学一起加入星球学习吧!


文章来源: http://mp.weixin.qq.com/s?__biz=MzU1NjgzOTAyMg==&mid=2247497760&idx=1&sn=3ebe2c75fa9fbda2d3d3f06a90a598cf&chksm=fc3c4121cb4bc837f47466d5923011f938571cfe771a7929740445e9eabf3126508a91950ca8#rd
如有侵权请联系:admin#unsafe.sh