利用python写的web路径扫描工具

介绍

本篇内容介绍了“利用python写的web路径扫描工具”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

现成的web路径扫描工具颇多,但都不尽如人意,主要是它是根据返回的状态码来判断页面是否存在的,比如返回200年,就认为找到页面,404年则认为页面不存在。但这里有个问题,返回的状态码是服务端可控的,而工具对于状态码的判断规则大都是定死了的,这就使得扫描结果没有多大价值。

所以抽空写了个web扫描工具,它的原理是先探测一个肯定不存在的路径和页面,/mustnotexistspath/和/mustnotexistspath + ext,将他两的返回码作为页面不存在的标志,如果与之不同,则页面可能存在,原理相当简单,起到了动态判断的效果。

代码为:

 

# !/usr/bin/python 进口httplib2

进口sys
如果len (sys.argv) & lt;3:
, print (lanz&写的,白马王子。)
,打印(“用法:”+系统。argv[0] +“主机”+“开头”)
,打印(例如:“+系统。argv [0] +“http://www.baidu.com。php”)
, sys.exit (0)

主机=系统。argv [1]
ext=sys.argv [2]

打印(主机)

http=httplib2.Http (.cache)
回应,内容=http.request(主机)

回应,内容=http.request(主机+/mustnotexistspath)
nonpathstatus=response.status

回应,内容=http.request(主机+“/mustnotexistspath”+ ext)
nonpathextstatus=response.status
打印(“NoneExistPathStatus:“nonpathstatus)
打印(“NoneExistFileStatus:“nonpathextstatus)
f=开放(,而WebPath.txt&,,,只要r&,)
文件列表=f.readlines ()

def subscan(子路径):
,在文件列表:fileLine
,,换行符=fileLine.strip ()
,,路径=子路径+ " +换行符
,,回应,内容=http.request(路径,“得到”)
,,如果response.status !=nonpathstatus:
,,,圣=str (response.status)
,,,印刷(圣+”:“+路径)
,,, subscan(路径)
,,
,,列出=路径+ ext
,,回应,内容=http.request(列出,“得到”)
,,如果response.status !=nonpathextstatus:
,,,圣=str (response.status)
,,,印刷(圣+”:“+列出)


subscan(主机)
f.close ()

效果对比:,,,,,

使用webtools扫描目录的结果图:

利用python写的web路径扫描工具

使用新代码得到的效果:

利用python写的web路径扫描工具

利用python写的web路径扫描工具