依旧是requests的应用,和暴力破解的原理一样
先说明一下思路,访问一个正确的url,状态码为200。所以我们需要一本目录字典,然后与站点域名组合构成url,for循环requests,检测每次返回的状态码是不是200就可以了。
目录字典这玩意,csdn有好多但是都要收费,所以我自己简单写了几个意思一下,试了试以前在本机的搭的网站。
这是根目录
然后写了个字典
代码不多,也好理解,直接上代码
baseurl = "http://127.0.0.1/" #被测网站的基础url,域名
file = open("dir.txt","r")
print("该网站存在以下目录")
for line in file.readlines(): #读字典中的每一行
line = line.strip() #每行默认会有\n,只是不显示,调用strip将其忽略
url = baseurl+line #需要测试的url
response = requests.get(url=url)
if response.status_code == 200: #如果响应码为200 则该目录存在
print(url)
file.close()
运行结果
测试复杂一点的网站,需要编写headers。大多数网站对404都有处理,都会跳转到一个网站设置到的提示出错的页面,并不会让服务器直接报错,这是很危险的。所以这个测状态码的方式,基本都被过滤了,要找更特殊的辨别是否存在目录的方式。