前言 md,弄好了发现免费的代理质量太差了,根本没法达到预期….还是记录下吧。
代理池 使用项目 OxOOo/ProxyPoolWithUI
搭建 docker 搭建
git clone https://github.com/OxOOo/ProxyPoolWithUI.git cd ProxyPoolWithUI
最好不修改配置文件,修改扫描与验证的时间间隔后会莫名其妙弹窗timeout
build and run
docker build --tag proxy_pool . docker run -p 20000:5000 -v /home/ubuntu/pentest/proxy/ProxyPoolWithUI:/proxy -d proxy_pool # 换路径
成功:
通过 /fetch_random 返回随机代理
使用 收集同类型的ip地址到ip.txt
import requestsrequests.packages.urllib3.disable_warnings() Protocol = 'http' def get_proxy (): ips = [] while len (ips)!=30 : proxy = requests.get('http://localhost:20000/fetch_random' ).text if Protocol in proxy and proxy not in ips: print('[+]get proxy: ' +proxy) ips.append(proxy) print('[*]get proxy finish' ) return ips def check (ips ): for i in ips: proxies = {'http' : i,'https' :i} try : r = requests.get('https://ifconfig.me/ip' ,proxies=proxies,verify=False ,timeout=5 ) if r.text in i: print('[+]check proxy:' +i) with open ("ip.txt" , 'a' ) as file: file.write(i.strip(Protocol+'://' ) + '\n' ) except : pass print('[*]check finish' ) def main (): ips = get_proxy() check(ips) if __name__ == '__main__' : main()
本地进行随机的转发
import socketfrom socket import errorimport threadingimport randomimport timelocaltime = time.asctime(time.localtime(time.time())) class ProxyServerTest : def __init__ (self, proxyip ): self.ser = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.proxyip = proxyip def run (self ): try : self.ser.bind(('127.0.0.1' , 9999 )) self.ser.listen(5 ) 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) iplen = len (self.proxyip) proxyip = self.proxyip[random.randint(0 , iplen - 1 )] print("[!]Now proxy ip:" + str (proxyip)) prip = proxyip[0 ] prpo = proxyip[1 ] try : mbsocket.settimeout(5 ) mbsocket.connect((prip, prpo)) except : print("[-]RE_Connect..." ) continue break try : mbsocket.send(data) print("[*]sending 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(proxyip) print("[-]Back to the client : " + str (e)) continue client.close() mbsocket.close() def Loadips (): print("[*]Loading proxy ips.." ) ip_list = [] ip = ['ip' , 'port' ] with open ("ips.txt" ) as ips: lines = ips.readlines() for line in lines: ip[0 ], ip[1 ] = line.strip().split(":" ) ip[1 ] = eval (ip[1 ]) nip = tuple (ip) ip_list.append(nip) return ip_list def main (): print('[+]START' ) ip_list = Loadips() try : pst = ProxyServerTest(ip_list) t = threading.Thread(target=pst.run, name='LoopThread' ) print('[*]Waiting for connection...' ) t.start() t.join() except Exception as e: print("[-]main : " + str (e)) return "[-]main : " + str (e) if __name__ == '__main__' : main()
sqlmap加上
--proxy=socks5://127.0.0.1:9999
dirsearch加上
--proxy=http://127.0.0.1:9999