svn信息泄漏探测工具(新手学python)

快放假了,比较闲,写了个svn信息泄漏的探测工具,严格意义上说和wwwscan功能差不多,判断是否存在/.svn/等目录,贴上代码:


#coding:utf-8

import sys

import httplib2

if len(sys.argv)<2:

print 'Usag:'+"svnscan.py"+" host"

sys.exit()

#判断输入url是否是http开头

if sys.argv[1].startswith('http://'):

host=sys.argv[1]

else:

host="http://"+sys.argv[1]

#访问一个不存在的目录,将返回的status和content-length做为特征

status=''

contentLen=''

http=httplib2.Http()

dirconurl=host+'/nodirinthiswebanx4dm1n/'

dirresponse=http.request(dirconurl,'GET')

status=dirresponse[0].status

contentLen=dirresponse[0].get('content-length')

#字典中保存svn的常见目录,逐个访问和特征status、content-length进行比对

f=open(r'e:\svnpath.txt','r')

pathlist=f.readlines()

def svnscan(subpath):

for svnpath in pathlist:

svnurl=host+svnpath.strip('\r\n')

response=http.request(svnurl,'GET')

if response[0].status!=status and response[0].get('content-length')!=contentLen:

print "vuln:"+svnurl

if __name__=='__main__':

svnscan(host)

f.close()

  svnpath.txt文件中保存的常见的svn版本控制的目录路径等,借鉴了某大婶的思路,根据返回的状态码、content-length跟一个不存在的目录返回的状态码、content-length进行比对,主要目的是确保判断的准确性,因为有些站点可能会有404提示页等等。

  目前只能想到的是存在svn目录,且权限设置不严格的,所以这个程序应该是不能准确判断是否存在漏洞,只能探测是否存在svn的目录。

  不知道还有其它的办法来确认一个站点是否存在svn目录?目录浏览返回的状态应该也是200?还是有另外的状态码?

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-20 00:35:40

svn信息泄漏探测工具(新手学python)的相关文章

爆破字典生成小脚本(新手学python)

遇到一套系统,后台管理登录无验证码,准备爆破试试,burp抓到的包如下: GET /admin/ HTTP/1.1 Host: www.nxadmin.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Langua

新手学Python之端口扫描系统

无聊写的一个小小的程序,主要功能如下: 1,从自有API接口获取所有的外网IP段: 2,用Nmap 遍历扫描所有的IP段,-oX 生成XML的扫描报告: 3,用xml.etree.ElementTree模块方法读取XML文件,将ip,开放端口,对应服务等写入Mysql数据库. 功能很简单,没有满足老大高大上的需求,所以这个小项目就这么英勇的挂掉了!~~~完全都还没考虑程序异常终止,扫描服务器异常歇菜的情况. 贴上代码: #coding:utf-8 import sys,os,time,subpr

用Python制作检测Linux运行信息的工具的教程_python

在这篇文章里,我们将会探索如何使用Python语言作为一个工具来检测Linux系统各种运行信息.让我们一起来学习吧. 哪种Python? 当我提到Python时,我一般是指CPython 2(准确来说是2.7).当同样的代码不能在CPython3(3.3)运行时,我们明确地把它指出并给出替代的代码,解释它们之间的不同点.请确保你已经安装了CPython,在终端输入python或者python3你会看到Python提示符出现在你的终端里. 请注意,所有的脚本程序都会以#!/usr/bin/env

你还在学Java?学python才是有道!图解更详细

java 和 Python 一直都是两种很火很强大的编程语言,对于刚开始起步学习编程的同学来说,会迷惑且最经常问的问题是,我该学 Java 还是 Python,是不是 Python 容易学,或是应该先学什么编程语言等等这样的问题.作为一名 Java 程序员,肯定会建议你先学 Java,然后再学 Python,但如果你问一个 Python 程序员,可能会得到一个完全相反的答案. 与此同时,Python 已经不再是乳臭未干的黄毛小子了,它已经成长而且和主流的编程语言,像 Java,C++ 有的一拼.

跟老齐学Python之从if开始语句的征程_python

一般编程的教材,都是要把所有的变量类型讲完,然后才讲语句.这种讲法,其实不符合学习的特点.学习,就是要循序渐进的.在这点上,我可以很吹一通了,因为我做过教师,研究教育教学,算是有一点心得的.所以,我在这里就开始讲授语句. 什么是语句 在前面,我们已经写了一些.py的文件,这些文件可以用python来运行.那些文件,就是由语句组成的程序. 为了能够严谨地阐述这个概念,我还是要抄一段维基百科中的词条:命令式编程 命令式编程(英语:Imperative programming),是一种描述电脑所需作出

跟老齐学Python之开始真正编程_python

通过对四则运算的学习,已经初步接触了Python中内容,如果看官是零基础的学习者,可能有点迷惑了.难道在IDE里面敲几个命令,然后看到结果,就算编程了?这也不是那些能够自动运行的程序呀? 的确.到目前为止,还不能算编程,只能算会用一些指令(或者叫做命令)来做点简单的工作.并且看官所在的那个IDE界面,也是输入指令用的. 列位稍安勿躁,下面我们就学习如何编写一个真正的程序.工具还是那个IDLE,但是,请大家谨记,对于一个真正的程序来讲,用什么工具是无所谓的,只要能够把指令写进去,比如用记事本也可以

跟老齐学Python之网站的结构_python

很早很早的时候,computer这个东西习惯于被称之为计算机,因为它的主要功能是完成一些科学计算的东西,我记得自己鼓捣它的时候,就是计算,根本就没有想到它有早一日还可以用来做别的.后来另外一个名字"电脑"逐渐被人们接收了,特别是网络发展起来之后,computer这个东西,如果要不上网,简直就不知道干什么.而且,现在似乎还有一个趋势,越来越强化网络的作用,而本机的功能虽然硬件在提升,可以做的事情感觉不多了. 不管怎么,网络是离不开了.上网,连上网之后干什么呢?就是要登录某某网站.不是联网

123-求教大神C++问题,新手学C++编程

问题描述 求教大神C++问题,新手学C++编程 源程序如下: #include #include using namespace std; class student { public: student(int n,string nam,char s) { num=n; name=nam; sex=s; cout<<"construct called"<<endl; } ~student() {cout<<"destruct called.

前端-新手关于Python爬虫的问题

问题描述 新手关于Python爬虫的问题 Python入门不久的新手想问下做爬虫需要知道哪些前端的知识呢,本人完全前端白痴一个... 谢谢!!! 解决方案 XML Regular Expression HTML Javascript CSS Shell Linux 能学的尽量都学,知识面广点. 解决方案二: pycurl,抓取网页 正则表达式匹配 递归算法,html和dom http协议 熟练使用抓包神器fiddler