全球领先的IT技术网站 |首页 |Tags |网站地图

您现在正在浏览:首页 » 综合频道 » 安全 » 嗅探扫描 » python写的web路径扫描工具

RSS订阅

python写的web路径扫描工具

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

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

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

代码为:

#!/usr/bin/python 
import httplib2

import sys
if len(sys.argv) < 3:
 print(“written by lanz….”)
 print( “Usage: ” + sys.argv[0] + ” host ” + ” .ext”)
 print (“Eg: ” + sys.argv[0] + ” http://www.baidu.com .php”)
 sys.exit(0)

host = sys.argv[1]
ext = sys.argv[2]

print(host)

http = httplib2.Http(“.cache”)
response,content = http.request(host)

response,content=http.request(host+”/mustnotexistspath/”)
nonpathstatus = response.status

response,content=http.request(host+”/mustnotexistspath”+ext)
nonpathextstatus = response.status
print(“NoneExistPathStatus:”,nonpathstatus)
print(“NoneExistFileStatus:”,nonpathextstatus)
f = open ( ‘WebPath.txt’, ‘r’ )
fileList = f.readlines()

def subscan(subpath):
 for fileLine in fileList:
  newline = fileLine.strip()
  path = subpath+”/”+newline
  response,content= http.request(path,”GET”)
  if response.status!=nonpathstatus:
   st = str(response.status)
   print(st+” : “+path)
   subscan(path)
  
  pathext=path + ext
  response,content= http.request(pathext,”GET”)
  if response.status!=nonpathextstatus:
   st = str(response.status)
   print(st+” : “+pathext)


subscan(host)
f.close()

效果对比:      

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

使用新代码得到的效果:

0 »

综合专题

Linux那些发行版的事儿
Linux那些发行版的事儿

Peter MacDonald说,作为一个操作系统,至少需要在内核基础上绑定TCP/IP和X窗口这样的基本功能,于是有了Softlanding Linux System。美国大学生Patrick Volkerding说,SLS维护的不好,于是有了Slackware。美国大学生Ian Murdock说,SLS维护的不好,而且我们需要一个秉承Linux和GNU的开放精神的发行版,于是有了Debian。

web缓存服务
web缓存服务

超文本传输协议(HTTP)是互联网基本协议之一,主要用于分布式、协作式、超媒体的信息系统。通过HTTP,客户端向服务器端发送资源请求, 服务器端返回所请求资源如图像、样式表和JavaScript。早期的Web开发者已经认识到,Web流量会增长得越来越快。为了满足永无止境的Web需求,Web缓存正成为优化特定时间内数据传送量的至...

Linux虚拟化技术
Linux虚拟化技术

虚拟化技术的应用十分广泛, 当前虚拟化技术主要关注于服务器的虚拟化, 或在单个主机上寄存多个独立的操作系统。本专题主要介绍Linux上操作系统级的虚拟化技术,以及相关虚拟化技术的应用。随着处理器应用虚拟化技术(VT)的问世,虚拟化越来越受到业界的关注。相对于传统的软件虚拟化解决方案,虚拟化技术基于硬件的完全虚...

最新资讯

相关热门文章

  • 本文暂无Tags标签