sqlmap代理池_sqlmap +外部代理池绕过IP拦截
0x00:前言
一,基于前面写过给“扫描目录+ N多代理”,这次给sqlmap加一个代理池。用处就是在跑sqlamp注入的时候,防止被ban掉IP。
二,这个想法是很久之前就有了,只不过这次是自己的研究一下原理结合网上公开的脚本,并用Python写出来的。这次没有创新的知识,纯当做是练习python脚本的编写。
0x01:思路
1.先爬取代理网站的代理IP,然后做一下验证,验证是否可用并输出到文本里。
2.启用本地代理127.0.0.1:5320(5320=我想爱你)
3.sqlmap加上代理“--proxy = http://127.0.0.1:5320”
0x02:过程
一,获取代理IP
import requests,re
url="http://www.89ip.cn/tqdl.html?api=1&num=10"#采用89ip的接口采集
types="https"
proxys={}
#print (url)
headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_10) AppleWebKit/600.1.25 (KHTML, like Gecko) Version/12.0 Safari/1200.1.25'}
r=requests.get(url,headers=headers).text
ip=re.findall("((?:[0-9]{1,3}\.){3}[0-9]{1,3})", r)#正则匹配出IP与端口
port=re.findall("(:\d{1,5})", r)#正则匹配出IP与端口
for i,j in zip(port[2:],ip):
print (j+i)
二,验证代理IP并输出到文本
我们来回忆上次提到的Python中代理的编写规则
proxy={'协议':'ip:端口'}
编写格式:
tar=requests.get(url,headers=headers,proxies=proxy,timeout=5,verify=False)
获取IP +验证代理
#/usr/bin/python3
#author:Jaky
import requests,re
url="http://www.89ip.cn/tqdl.html?api=1&num=9000"#采用89ip的接口采集
types="https"
proxys={}
headers={'User-Agent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)'}
r=requests.get(url,headers=headers).text
ip=re.findall("((?:[0-9]{1,3}\.){3}[0-9]{1,3})", r)#正则匹配出IP与端口
port=re.findall("(:\d{1,5})", r)#正则匹配出IP与端口
for i,j in zip(port[2:],ip):
proxy=j+i
print (proxy)
proxys[types.lower()]='%s'%proxy
try:
tar=requests.get("https://ifconfig.me/ip",headers=headers,proxies=proxys,timeout=5,verify=False).text
if tar in str(proxys):
with open("ip.txt",'a') as file: file.write(proxy+'\n') # 保存文件
except :
pass
我这里直接采集9000个+验证
同时输出结果到“ ip.txt”
三,完整代码
#!/usr/bin/env python3
# coding:utf-8
import socket,time,random,threading,requests,re
from socket import error
localtime = time.asctime(time.localtime(time.time()))
class ProxyServerTest():
def __init__(self, proxyip):
# 本地socket服务
self.ser = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.proxyip = proxyip
def run(self):
try:
# 本地服务IP和端口
self.ser.bind(('127.0.0.1', 5320))
# 最大连接数
self.ser.listen(10)
except error as e:
print("[-]The local service : " + str(e))
return "[-]The local service : " + str(e)
while True:
try:
# 接收客户端数据
client, addr = self.ser.accept()
print('[*]accept %s connect' % (addr,))
data = client.recv(1024)
if not data:
break
print('[*' + localtime + ']: Accept data...')
except error as e:
print("[-]Local receiving client : " + str(e))
return "[-]Local receiving client : " + str(e)
while True:
# 目标代理服务器,将客户端接收数据转发给代理服务器
mbsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("[!]Now proxy ip:" + str(self.proxyip))
prip = self.proxyip[0]
prpo = self.proxyip[1]
try:
mbsocket.settimeout(3)
mbsocket.connect((prip, prpo))
except:
print("[-]RE_Connect...")
continue
break
try:
mbsocket.send(data)
except error as e:
print("[-]Sent to the proxy server : " + str(e))
return "[-]Sent to the proxy server : " + str(e)
while True:
try:
# 从代理服务器接收数据,然后转发回客户端
data_1 = mbsocket.recv(1024)
if not data_1:
break
print('[*' + localtime + ']: Send data...')
client.send(data_1)
except socket.timeout as e:
print(self. proxyip)
print("[-]Back to the client : " + str(e))
continue
# 关闭连接
client.close()
mbsocket.close()
def main():
print('Atuhor:Jaky')
print('WeChat public number:luomiweixiong')
file = open("ip.txt","r")
for i in file:
ip = i.split(':')
ip_list = (ip[0],int(ip[1]))
print(ip_list)
try:
try_ip = ProxyServerTest(ip_list)
except Exception as e:
print("[-]main : " + str(e))
return "[-]main : " + str(e)
t = threading.Thread(target=try_ip.run, name='LoveJaky')
print('[*]Waiting for connection...')
# 关闭多线程
t.start()
t.join()
if __name__ == '__main__':
main()
0x03:总结
1,使用之前得先爬取代理IP,验证完然后会自动保存在“ ip.txt”里
2,执行以上代码,然后
sqlmap.py -u "http://www.xxx.com/1.asp?id=1" --proxy=http://127.0.0.1:5320
注:本文转自微信公众号‘ 洛米唯熊’,如有侵权立即删除。
sqlmap代理池_sqlmap +外部代理池绕过IP拦截相关推荐
- sqlmap代理池_sqlmap多代理防IP被BAN
好不容易挖到的注入点,结果总是因为请求速度过快被ban掉ip,我觉得可以给sqlmap加个代理池!暑假前的想法,今天花了一个下午,终于实现了.原来是准备直接改源码的.但是被一个群里的大佬一语点醒,sq ...
- 【计算机网络】网络层 : 移动 IP 技术 ( 移动节点 | 本地代理 | 外部代理 | 永久地址 | 转交地址 | 移动 IP 通信过程 )
文章目录 一.移动 IP 技术 简介 二.移动 IP 通信 一.移动 IP 技术 简介 移动 IP 技术 简介 : ① "移动 IP 技术" 概念 : 移动节点 以 固定的网络 I ...
- python建立ip代理池_Python搭建代理IP池实现存储IP的方法
上一文写了如何从代理服务网站提取 IP,本文就讲解如何存储 IP,毕竟代理池还是要有一定量的 IP 数量才行.存储的方式有很多,直接一点的可以放在一个文本文件中,但操作起来不太灵活,而我选择的是 My ...
- Python爬虫伪装,请求头User-Agent池,和代理IP池搭建使用
一.前言 在使用爬虫的时候,很多网站都有一定的反爬措施,甚至在爬取大量的数据或者频繁地访问该网站多次时还可能面临ip被禁,所以这个时候我们通常就可以找一些代理ip,和不用的浏览器来继续爬虫测试.下面就 ...
- 第九部分 代理的使用(代理设置,代理池的搭建,用代理获取微信公众号文章)...
网站采取的反爬虫措施有:弹出验证码,需要登录.检测某个IP在单位时间内的请求次数,超过规定的某个值,服务器拒绝服务,返回一些错误信息,这是封IP. 既然服务器封IP,可采用某种方式伪装IP,让服务器不 ...
- python—简单数据抓取七(采取蘑菇API代理设置scrapy的代理IP池并利用redis形成队列依次使用,利用ip池访问网页并将scrapy爬取转移到items的数据存入到数据库)
学习目标: Python学习二十七-简单数据抓取七 学习内容: 1.采取蘑菇API代理设置scrapy的代理IP池并利用redis形成队列依次使用 2.利用ip池访问网页并将scrapy爬取转移到it ...
- 【操作系统】操作系统知识点整理;C++ 实现线程池与windows 线程池的使用;
文章目录 体系结构 冯诺依曼 存储结构 cache常见的组织结构 cache命中 缓存一致性 硬中断.软中断 操作系统结构 内核 Linux宏内核 内存管理 虚拟内存 内存管理 - 分段 - 分页 - ...
- JDBC、封装JDBC连接池、第三方连接池工具
主要内容: JDBC简介 JDBC来源 通过代码实现JDBC JDBC的改进需求 JDBC改进的代码实现 JDBC使用的设计模式 封装连接池 封装JDBC连接池 ThreadLoacl的使用 Thre ...
- 代理模式coding-静态代理
代理模式我们会先讲一下静态代理,然后讲一下动态代理,为了能从JDK的静态代理和动态代理之中体会他们之间的不同,加深对他们的理解,在这里面引入的业务场景,是你们非常感兴趣的,也就是说我们会引入一个分库的 ...
最新文章
- 基于Yolo-V3对卫星图像进行储油罐容积占用率的研究
- 程序员4月书讯:Angular来了!
- Protobuf windows
- NOJ --138 找球号(二)
- icse ccf_ICSE的完整形式是什么?
- python 3.9.0a0_Python 3.9.0 稳定版发布
- 信息学奥赛一本通(1165:Hermite多项式)
- Jenkins学习总结(2)——Jenkins+Maven进行Java项目持续集成
- 服务器故障内存位置怎么确定,服务器故障内存位置怎么确定
- SQL Where 字符串拼接
- 【超图+CESIUM】【基础API使用示例】30、超图|CESIUM -【坐标转换】世界坐标转屏幕坐标
- 计算机组成原理中的DUBS是,[转帖]实验室名称中英文对照大整理
- Three.js修改模型中心点
- 富爸爸穷爸爸第二章的思考
- 电商分账系统好与坏的3个判断标准
- 小白专属:大数据总纲_大数据路线_高屋建瓴的体验大数据的世界
- Hadoop大数据平台开发与案例分析
- 解决Unity3D使用VRTK时,VR眼镜连接不上的问题
- 第一次软件工程实践作业
- 机器学习_4.隐马尔可夫模型初识