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拦截相关推荐

  1. sqlmap代理池_sqlmap多代理防IP被BAN

    好不容易挖到的注入点,结果总是因为请求速度过快被ban掉ip,我觉得可以给sqlmap加个代理池!暑假前的想法,今天花了一个下午,终于实现了.原来是准备直接改源码的.但是被一个群里的大佬一语点醒,sq ...

  2. 【计算机网络】网络层 : 移动 IP 技术 ( 移动节点 | 本地代理 | 外部代理 | 永久地址 | 转交地址 | 移动 IP 通信过程 )

    文章目录 一.移动 IP 技术 简介 二.移动 IP 通信 一.移动 IP 技术 简介 移动 IP 技术 简介 : ① "移动 IP 技术" 概念 : 移动节点 以 固定的网络 I ...

  3. python建立ip代理池_Python搭建代理IP池实现存储IP的方法

    上一文写了如何从代理服务网站提取 IP,本文就讲解如何存储 IP,毕竟代理池还是要有一定量的 IP 数量才行.存储的方式有很多,直接一点的可以放在一个文本文件中,但操作起来不太灵活,而我选择的是 My ...

  4. Python爬虫伪装,请求头User-Agent池,和代理IP池搭建使用

    一.前言 在使用爬虫的时候,很多网站都有一定的反爬措施,甚至在爬取大量的数据或者频繁地访问该网站多次时还可能面临ip被禁,所以这个时候我们通常就可以找一些代理ip,和不用的浏览器来继续爬虫测试.下面就 ...

  5. 第九部分 代理的使用(代理设置,代理池的搭建,用代理获取微信公众号文章)...

    网站采取的反爬虫措施有:弹出验证码,需要登录.检测某个IP在单位时间内的请求次数,超过规定的某个值,服务器拒绝服务,返回一些错误信息,这是封IP. 既然服务器封IP,可采用某种方式伪装IP,让服务器不 ...

  6. python—简单数据抓取七(采取蘑菇API代理设置scrapy的代理IP池并利用redis形成队列依次使用,利用ip池访问网页并将scrapy爬取转移到items的数据存入到数据库)

    学习目标: Python学习二十七-简单数据抓取七 学习内容: 1.采取蘑菇API代理设置scrapy的代理IP池并利用redis形成队列依次使用 2.利用ip池访问网页并将scrapy爬取转移到it ...

  7. 【操作系统】操作系统知识点整理;C++ 实现线程池与windows 线程池的使用;

    文章目录 体系结构 冯诺依曼 存储结构 cache常见的组织结构 cache命中 缓存一致性 硬中断.软中断 操作系统结构 内核 Linux宏内核 内存管理 虚拟内存 内存管理 - 分段 - 分页 - ...

  8. JDBC、封装JDBC连接池、第三方连接池工具

    主要内容: JDBC简介 JDBC来源 通过代码实现JDBC JDBC的改进需求 JDBC改进的代码实现 JDBC使用的设计模式 封装连接池 封装JDBC连接池 ThreadLoacl的使用 Thre ...

  9. 代理模式coding-静态代理

    代理模式我们会先讲一下静态代理,然后讲一下动态代理,为了能从JDK的静态代理和动态代理之中体会他们之间的不同,加深对他们的理解,在这里面引入的业务场景,是你们非常感兴趣的,也就是说我们会引入一个分库的 ...

最新文章

  1. 基于Yolo-V3对卫星图像进行储油罐容积占用率的研究
  2. 程序员4月书讯:Angular来了!
  3. Protobuf windows
  4. NOJ --138 找球号(二)
  5. icse ccf_ICSE的完整形式是什么?
  6. python 3.9.0a0_Python 3.9.0 稳定版发布
  7. 信息学奥赛一本通(1165:Hermite多项式)
  8. Jenkins学习总结(2)——Jenkins+Maven进行Java项目持续集成
  9. 服务器故障内存位置怎么确定,服务器故障内存位置怎么确定
  10. SQL Where 字符串拼接
  11. 【超图+CESIUM】【基础API使用示例】30、超图|CESIUM -【坐标转换】世界坐标转屏幕坐标
  12. 计算机组成原理中的DUBS是,[转帖]实验室名称中英文对照大整理
  13. Three.js修改模型中心点
  14. 富爸爸穷爸爸第二章的思考
  15. 电商分账系统好与坏的3个判断标准
  16. 小白专属:大数据总纲_大数据路线_高屋建瓴的体验大数据的世界
  17. Hadoop大数据平台开发与案例分析
  18. 解决Unity3D使用VRTK时,VR眼镜连接不上的问题
  19. 第一次软件工程实践作业
  20. 机器学习_4.隐马尔可夫模型初识

热门文章

  1. Base64加密解密算法的C/C++代码实现
  2. ETHREAD 结构体属性介绍
  3. VMprotect简介
  4. SQLite 数据库注入总结
  5. Intel VT学习笔记(四)—— VMCS(下)
  6. Windows异常学习笔记(四)—— 编译器扩展SEH
  7. [保护模式]PAE模式
  8. Django实现对数据库数据增删改查(一)
  9. Spring boot转发请求
  10. Spring boot日志框架