专栏首页渗透云笔记网络安全自学篇(十七)| Python攻防之构建Web目录扫描器及ip代理池(四)

网络安全自学篇(十七)| Python攻防之构建Web目录扫描器及ip代理池(四)

一.Web目录扫描思路

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

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

2.原理

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

其原理是通过请求返回的信息来判断当前目录或文件是否真实存在。网站后台扫描工具都是利用目录字典进行爆破扫描,字典越多,扫描到的结果也越多。常见的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路径下,指定扫描任务。

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 文件(源自御剑),涉及了常见的网站目录。如下图所示:

.完整代码:

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

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

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

三.ip代理池

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

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

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

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

完整代码:

输出结果如下图所示,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页了,接下来需要学会精简和总结。种一棵树最好的时间是十年前,其次是现在,忙点好,一起加油。

本文分享自微信公众号 - 渗透云笔记(shentouyun),作者:杨秀章

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小白都能玩转的Nmap(一)

    在以上语法中,仅指定使用的Nmap脚本即可,不需要指定目标地址。由于broadcast­dhcpdiscover脚本将会发送包到局域网中的所有主机,并且等待有响...

    天钧
  • CSRF漏洞详解与挖掘

    CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗...

    天钧
  • 对HTTP与HTTPS学习的笔记

    HTTP协议:Hypertext Transfer Protocol,超文本传输协议,现在普遍的版本为1.1版本

    天钧
  • 网络安全自学篇(十七)| Python攻防之构建Web目录扫描器及ip代理池(四)

    自幼受贵州大山的熏陶,养成了诚实质朴的性格。经过寒窗苦读,考入BIT,为完成自己的教师梦,放弃IT、航天等工作,成为贵财一名大学教师,并想把自己所学所感真心传授...

    释然
  • 小白零基础编程到大佬级别是怎么学习Python的?

    程序员在普通人眼里就像魔法师,一个脚本轻松抢几十盒月饼(虽然最后被开除),一个插件解决春运抢票难题,几十行代码搭建一个 Web 网站,用微信自动和妹纸聊天,在程...

    企鹅号小编
  • Web(一):概述

    学Python也有一段时间了,学完基本语法后整个人都蒙了。没有什么可以来练手,感觉什么也不会。 准备主攻爬虫和Web。 昨晚学长刚给讲了MVC,回来看到Pyt...

    一点儿也不潇洒
  • 深度学习: Full Connection (全连接层)

    在 Caffe 中,全连接层 的 type (层类型) 为 Inner Product 。 输出一个简单向量(把输入数据blobs的width和height...

    JNingWei
  • 美团开源Logan Web:前端日志在Web端的实现

    2018 年,美团点评推出大前端日志系统—— Logan,并开源了 Android 与 iOS 端的 SDK。这次,我们又开源了在 Web 环境运行的 SDK、...

    美团技术团队
  • TechEmpower最新一轮的性能测试出炉,ASP.NET Core依旧表现不俗

    TechEmpower在10月30发布最新一轮(Round 17)针对“Web Framework Benchmarks”的性能测试报告,ASP.NET Cor...

    蒋金楠
  • Python中使用枚举类

    其实有更好的方法:为这样的枚举类型定义一个class类型,然后,每个常量都是class的一个唯一实例。 Python中提供了Enum类来实现这个功能:

    py3study

扫码关注云+社区

领取腾讯云代金券