十七,Python攻防之构建Web目录扫描器及ip代理池(四)

或者Web目录扫描器的原理是什么呢?网站后台扫描工具都是利用目录字典进行爆破扫描,字典越多,扫描到的结果也越多。Linux提供的目录扫描工具支持全部的Web目录扫描方式。是一个很简单的多线程Web目录扫描工具,它是使用语言编写的,主要调用了第三方库实现。它是一个高级web目录扫描工具,功能将会强于、、、御剑。构建Web目录扫描器获取IP地址之后,通过如下设置可以使用代理IP地址进行访问。

以下为知识DOC为大家进行整理的相关内容,希望对大家有所帮助!

一.Web目录扫描思路

1.网站目录和敏感文件扫描

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

2.原理

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

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

3.工具介绍

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

御剑

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

python获取本机ip地址_python获取本机ip地址_ip地址重新获取ip地址

是一个很简单的多线程Web目录扫描工具,它是使用语言编写的,主要调用了第三方库实现。大家可以看看它上面的代码,和本篇博客原理较为相似。

源代码:

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

python获取本机ip地址_python获取本机ip地址_ip地址重新获取ip地址

将CMD命令行打开python获取本机ip地址,进入路径下,指定扫描任务。

python webdirscan.py 目标网站

它是一个高级web目录扫描工具,功能将会强于、、、御剑。详见:

注意:工具的使用方法这里就不进行详细介绍了,希望读者下来自行学习,本文主要分享代码是如何实现Web目录扫描的。

二.构建Web目录扫描器

该程序主要实现以下3个功能:

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

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

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

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

python获取本机ip地址_ip地址重新获取ip地址_python获取本机ip地址

完整代码:

# -*-  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('[*] %sn' % 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目录扫描器就实现了,希望对大家有所帮助 。后续如果将我们的程序扩展到工具,就能更好地进行抓包分析及安全测试,你可以去试试~

三.ip代理池

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

国内IP代理网站为:

其基本思路如下,通过爬虫获取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 = .get(‘’, =proxy, =6)

四.总结

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

本文地址: https://www.zhishidoc.com/18123.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 859089669@qq.com 举报,一经查实,本站将立刻删除。

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年10月19日 上午4:23
下一篇 2022年10月19日 上午4:25

相关推荐

  • 福建西正达建设发展有限公司 2022年“质量月”活动方案

    福建西正达建设发展有限公司

    2022年10月21日
    10500
  • 龙族中的爱情经典句子

    世上的爱情故事不是都有结局的。你还知道哪些龙族中的爱情经典句子吗?下面是学习啦小编为大家准备的一些龙族中的爱情经典句子,欢迎大家参阅,希望大家喜欢。龙族中的爱情经典句子(精选篇)龙族中的爱情经典句子(热门篇)那几天的欢乐是剧作家为了映衬结尾的悲剧而写出来的桥段。龙族中的爱情经典句子(最新篇)龙族经典爱情语录大全龙族经典语录关于爱情关于龙族经典台词大全

    2022年10月18日
    11200
  • 最新你画我猜-成语-词汇

    你画我猜的词语————————————————————————————

    投稿 2022年10月15日
    13000
  • 外婆生日祝福语

    外婆生日祝福语外婆生日祝福语11、亲爱的外婆,您养育子孙的恩典,真是深如东海、重如泰山!外婆,生日快乐。外婆生日祝福语2一、外婆,生日到来,你的外孙女祝您生日快乐!外婆,生日快乐!七、祝亲爱的外婆生日快乐!十一、小时候总在你身边撒娇,因为知道你最疼爱我,现在因为工作的关系,没经常在你身边陪伴你,但心里会永远念着您,今天是您生日,祝外婆生日快乐!

    2022年10月7日
    16300
  • 形容六月初夏的诗句

    形容六月初夏的诗句形容六月初夏的诗句,希望能够帮助到大家。13、人皆苦炎热,我爱夏日长。一夜雨声凉到梦,万荷叶上送秋来。——陆游《初夏绝句》48、一夜雨声凉到梦,万荷叶上送秋来。行人无限秋风思,隔水青山似故乡。【形容六月初夏的诗句】相关文章:形容六月炎热的段落形容秋分的诗句形容冬至的诗句形容明月的诗句形容冬至诗句形容大雪的诗句大全形容下大雪的诗句形容腊梅花的诗句

    2022年11月3日
    12000

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注