首页 > 技术文章 > python安全开发之目录扫描器

YYXL 2021-07-08 22:28 原文

一、目录扫描的意义

在现阶段安全测试中,目录扫描能大大提高渗透测试人员的工作效率。

在实战中,如果通过目录扫描,获取到敏感文件,如后台登录地址等,就可可以尝试暴库、SQL注入等方式进行安全测试;

如果发现敏感目录或敏感文件,能帮我们获取如php环境变量、robots.txt、网站指纹等信息;

如果扫描出了一些上传的文件,我们甚至可能通过上传功能(一句话恶意代码)获取网站的权限。

 

二、实现原理

基于python强大的模块功能库,我们可以通过使用requests库进行访问,当code_status返回值为200时则可判断出该站点目录的存在,若返回404,403则表示错误。

在实际工具开发中,需要配合一个强大的url字典进行url爆破。然后再将返回值为200的url数据存储在一个  .txt文件中,方便后续使用。

在实际操作中,很多网站都存在反爬机制,故在实际应用中应当添加多线程的访问。同时也应更改添加header信息绕过网站反爬机制

 

三、简单实现代码

import requests
import os
import threading
#调用相关库,如果需要多线程则需要调用threading库

url = "http://127.0.0.1/" #被测网站的url

file = open("dir.txt","r")#打开词典文件
print("该网站存在以下目录")
for line in file.readlines(): #读字典中的每一行
line = line.strip() #每行默认会有\n,只是不显示,调用strip将其忽略
url1 = url+line #需要测试的url
r = requests.get(url1)
if response.status_code == 200: #如果响应码为200 则该目录存在
print(url)
file.close()#关闭文件


四、常见目录扫描工具
1、御剑
2、webdirscan(也是基于python的requests库编写)
3、dirbuster
4、dirmap


五、个人感想
学艺不精,望各位大佬多多指导,谢谢

推荐阅读