Java 实现登录SVN(可3690端口爆破)

yzmm
817 阅读
很多扫描SVN工具都是扫描的.svn文件,不能通过端口去扫描SVN。Java有SVN的扩展库,已实现了SVN客户端的所有功能。

SVN有个未授权访问问题,默认不开启。一般人都会设置必须登录才能访问资源,但不排除少部分偷懒的人。其次就是SVN弱口令了。

svnserve.conf:

authz-db = authz
去年写了个简单的SVN客户端放着也没用。下面给的一个认证的demo程序,需要jar包自己去找。引入jar就可以登录SVN了,稍微改改或许可以做个暴力破解了。(String user,String pass参数是帐号密码,如果考虑authz-db = authz可以在调用createDefaultAuthenticationManager的时候不传值)
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
import org.tmatesoft.svn.core.io.SVNRepository;
import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
import org.tmatesoft.svn.core.wc.SVNWCUtil;
public class TestLogin {
	@SuppressWarnings("deprecation")
	public boolean login(String url,String user,String pass){
		SVNRepository repository = null;
		try {
			repository = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(url));
			ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(user,pass);
			repository.setAuthenticationManager(authManager);
			repository.testConnection();
			return true;
		} catch (SVNException e) {
			System.out.println(e.toString());
		}
		return false;
	}
	public static void main(String[] args) {
		TestLogin l = new TestLogin();
		System.out.println(l.login("svn://xxx.net", "xxxxxx", "xxxxx"));
	}
}

评论 (0)

发表评论