sqlmap代理池_sqlmap +外部代理池绕过IP拦截
0x00:前言
一,基于前面寫過給“掃描目錄+ N多代理”,這次給sqlmap加一個(gè)代理池。用處就是在跑sqlamp注入的時(shí)候,防止被ban掉IP。
二,這個(gè)想法是很久之前就有了,只不過這次是自己的研究一下原理結(jié)合網(wǎng)上公開的腳本,并用Python寫出來的。這次沒有創(chuàng)新的知識(shí),純當(dāng)做是練習(xí)python腳本的編寫。
0x01:思路
1.先爬取代理網(wǎng)站的代理IP,然后做一下驗(yàn)證,驗(yàn)證是否可用并輸出到文本里。
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)
二,驗(yàn)證代理IP并輸出到文本
我們來回憶上次提到的Python中代理的編寫規(guī)則
proxy={'協(xié)議':'ip:端口'}
編寫格式:
tar=requests.get(url,headers=headers,proxies=proxy,timeout=5,verify=False)
獲取IP +驗(yàn)證代理
#/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個(gè)+驗(yàn)證
同時(shí)輸出結(jié)果到“ 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服務(wù)
self.ser = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.proxyip = proxyip
def run(self):
try:
# 本地服務(wù)IP和端口
self.ser.bind(('127.0.0.1', 5320))
# 最大連接數(shù)
self.ser.listen(10)
except error as e:
print("[-]The local service : " + str(e))
return "[-]The local service : " + str(e)
while True:
try:
# 接收客戶端數(shù)據(jù)
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:
# 目標(biāo)代理服務(wù)器,將客戶端接收數(shù)據(jù)轉(zhuǎn)發(fā)給代理服務(wù)器
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:
# 從代理服務(wù)器接收數(shù)據(jù),然后轉(zhuǎn)發(fā)回客戶端
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
# 關(guān)閉連接
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...')
# 關(guān)閉多線程
t.start()
t.join()
if __name__ == '__main__':
main()
0x03:總結(jié)
1,使用之前得先爬取代理IP,驗(yàn)證完然后會(huì)自動(dòng)保存在“ ip.txt”里
2,執(zhí)行以上代碼,然后
sqlmap.py -u "http://www.xxx.com/1.asp?id=1" --proxy=http://127.0.0.1:5320
注:本文轉(zhuǎn)自微信公眾號(hào)‘?洛米唯熊’,如有侵權(quán)立即刪除。
總結(jié)
以上是生活随笔為你收集整理的sqlmap代理池_sqlmap +外部代理池绕过IP拦截的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中的面向对象编程讲解_Pyt
- 下一篇: 水磨石地面分隔条设置示意图_水磨石地面设