首页 » 网站推广 » php署理ip扫描技巧_十七Python攻防之构建Web目录扫描器及ip代理池四

php署理ip扫描技巧_十七Python攻防之构建Web目录扫描器及ip代理池四

访客 2024-11-06 0

扫一扫用手机浏览

文章目录 [+]

网站目录和敏感文件扫描是网站测试中最基本的手段之一。
如果通过该方法创造了网站后台,可以考试测验暴库、SQL注入等办法进行安全测试;如果创造敏感目录或敏感文件,能帮我们获取如php环境变量、robots.txt、网站指纹等信息;如果扫描出了一些上传的文件,我们乃至可能通过上传功能(一句话恶意代码)获取网站的权限。

2.事理

php署理ip扫描技巧_十七Python攻防之构建Web目录扫描器及ip代理池四

在Web目录扫描中,字典是非常主要的,一个好的字典能帮助我们的程序更好地创造漏洞和目标。
那么,如何通过Python代码实现Web目录扫描呢?或者Web目录扫描器的事理是什么呢?

php署理ip扫描技巧_十七Python攻防之构建Web目录扫描器及ip代理池四
(图片来自网络侵删)

其事理是通过要求返回的信息来判断当前目录或文件是否真实存在。
网站后台扫描工具都是利用目录字典进行爆破扫描,字典越多,扫描到的结果也越多。
常见的Web目录扫描工具包括:御剑1.5、DirBuster、Dirsearch、Webdirscan、Cansina、Dirmap等。
涉及的常用功能包括:能利用字典、支持纯爆破、并发引擎、能爬取页面动态天生字典、能fuzz扫描、能自定义要求(代理)、自定义相应结果及相应状态等。

3.工具先容

DirBuster

Kali Linux供应的目录扫描工具DirBuster支持全部的Web目录扫描办法。
它既支持网页爬虫办法扫描,也支持基于字典暴力扫描,还支持纯暴力扫描。
该工具利用Java措辞编写,供应命令行(Headless)和图形界面(GUI)两种模式。
个中,图形界面模式功能更为强大。
用户不仅可以指定纯暴力扫描的字符规则,还可以设置以URL模糊办法构建网页路径。
同时,用户还对网页解析办法进行各种定制,提高网址解析效率。

御剑御剑系列的web工具一贯是比较顺手的工具。
这款御剑也是很好用的网站后台扫描工具,图形化页面,利用起来大略上手,因此也被大多数人所喜好。
其作者可能是“御剑孤独”。

Webdirscan

webdirscan是一个很大略的多线程Web目录扫描工具,它是利用Python措辞编写的,紧张调用了requests第三方库实现。
大家可以看看它Github上面的代码,和本篇博客事理较为相似。

源代码:https://github.com/TuuuNya/webdirscan/

我们将代码下载至本地,再进行扫描目标网站。

将CMD命令行打开,进入webdirscan路径下,指定扫描任务。

python webdirscan.py 目标网站

Dirmap它是一个高等web目录扫描工具,功能将会强于DirBuster、Dirsearch、cansina、御剑。
详见:https://github.com/H4ckForJob/dirmap

把稳:工具的利用方法这里就不进行详细先容了,希望读者下来自行学习,本文紧张分享Python代码是如何实现Web目录扫描的。

二.Python构建Web目录扫描器

该程序紧张实现以下3个功能:

判断Web目录或文件是否存在。
通过requests发送要求实现,获取status_code状态码,状态码200表示成功。

通过读取文件后去 asp、aspx、jsp、php 常见目录,对其进行扫描。

由于很多安全产品能识别出你的恶意攻击要求,这里须要设置多线程调用,从而避免安全软件识别。

下面是Python实现Web目录扫描的代码,个中本地存在一个 asp.txt 文件(源自御剑),涉及了常见的网站目录。
如下图所示:

完全代码:

# -- coding: utf-8 --import requestsfrom Queue import Queueimport sysimport threading#多线程实现Web目录扫描class DirScan(threading.Thread): def __init__(self, queue): threading.Thread.__init__(self) self._queue = queue def run(self): #获取行列步队中的URL while not self._queue.empty(): url = self._queue.get() #print url try: headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36" } #发送要求 r = requests.get(url=url, headers=headers, timeout=8) #Web目录存在 if r.status_code == 200: #print '[] ' + url sys.stdout.write('[] %s\n' % url) except Exception, e: #print e pass#定义行列步队及放入URLdef start(url, ext, count): queue = Queue() f = open('%s.txt' % ext, 'r') for i in f: queue.put(url + i.rstrip('\n')) #多线程 threads = [] thread_count = int(count) for i in range(thread_count): threads.append(DirScan(queue)) for t in threads: t.start() for t in threads: t.join()#主函数if __name__ == '__main__': url = 'http://www.xxxxx.com' ext = 'asp' count = 10 start(url, ext, count)

作者通过浏览器搜索 “inurl:asp”,探求某网站为例,接着调用程序获取它的目录。

其扫描结果如下图所示,通过访问这些链接创造它们是真实存在的。

写到这里,一个大略的Web目录扫描器就实现了,希望对大家有所帮助 。
后续如果将我们的程序扩展到BurpSuite工具,就能更好地进行抓包剖析及安全测试,你可以去试试~

三.ip代理池

某些网站会对我们发送的要求进行有效拦截,这里可以考试测验设置一个ip代理池,无论是网络爬虫还是要求发送,都能很好地办理这些问题。
下面大略讲解一个获取IP代理的代码,但遗憾的是,作者想把它移植到上面那段代码中,但验证的IP地址多数无法访问,导致失落败。

海内IP代理网站为:https://www.xicidaili.com/nn

其基本思路如下,通过Python爬虫获取IP地址、端口和协议类型,其代码的基本思路如下:

下面是对应的HTML源代码,须要抓取的是tr值,每行代表一个IP地址。

完全代码:

# -- coding:utf-8 --import requestsimport refrom bs4 import BeautifulSoup as bsimport telnetlib#爬取数据def proxy_spider(): #设置要求 headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36'} url = 'https://www.xicidaili.com/nn' r = requests.get(url=url, headers=headers) print r #解析 通过re.compile('|[^odd]')解析奇数和偶数行 soup = bs(r.content, 'lxml') datas = soup.find_all(name='tr', attrs={'class': re.compile('|[^odd]')}) for data in datas: soup_proxy_content = bs(str(data), 'lxml') soup_proxys = soup_proxy_content.find_all(name='td') ip = str(soup_proxys[1].string) port = str(soup_proxys[2].string) types = str(soup_proxys[5].string) #print ip, port, types #判断IP地址是否存活 proxy = {} proxy[types.lower()] = '%s:%s' % (ip, port) #proxy_check(ip, port, types) proxy_telnet(ip, port, types)#获取能成功利用的代理ip内容 调用requests代理访问方法def proxy_check(ip, port, types): proxy = {} proxy[types.lower()] = '%s:%s' % (ip, port) #proxy = {'http':'119.254.84.90:80'} try: r = requests.get('http://1212.ip138.com/ic.asp', proxies=proxy, timeout=6) #print r.text ip_content = re.findall(r"\[(.?)\]", r.text)[0] if ip == ip_content: print proxy except Exception, e: print e pass#检测IP地址是否存活def proxy_telnet(ip, port, types): proxy = {} proxy[types.lower()] = '%s:%s' % (ip, port) try: telnetlib.Telnet(ip, port, timeout=2) print 'True:', proxy except: print 'False:', proxy proxy_spider()

输出结果如下图所示,IP地址和端口成功抓取,但是很多无法利用,读者可以自行试试。

获取IP地址之后,通过如下设置可以利用代理IP地址进行访问。
proxy = {‘http’:‘119.254.84.90:80’}r = requests.get(‘http://www.xxxx.com’, proxies=proxy, timeout=6)

四.总结

希望这篇文章对你有所帮助,这是Python网络攻防非常根本的一篇博客,后续作者也将连续深入学习,制作一些常用的小工具供大家互换。
作者B站的视频推举险些都是网络安全和Python编程,这个算法写得不错,最近挤空闲的韶光看了100多部视频。
Python攻防之弱口令、字典暴库还在撰写中,论文申报请示的PPT也快100页了,接下来须要学会精简和总结。
种一棵树最好的韶光是十年前,其次是现在,忙点好,一起加油。

标签:

相关文章

Python编程从入门到精通,探索编程之美

编程已经成为现代社会的一项基本技能。Python作为一种简单易学、功能强大的编程语言,在我国教育领域备受关注。本文将从Python...

网站推广 2025-03-02 阅读1 评论0

Scum07代码编程之美与适用方法

编程已成为当今社会不可或缺的技能之一。Scum07代码作为一款经典的编程语言,在我国众多程序员中备受推崇。本文将深入解析Scum0...

网站推广 2025-03-02 阅读1 评论0

Linux环境下的前端代码运行优化与步骤

前端技术逐渐成为软件开发的核心。Linux操作系统因其稳定性、安全性、开放性等特点,成为众多开发者和企业青睐的运行环境。本文将从L...

网站推广 2025-03-02 阅读1 评论0