
前言
我们在进行渗透测试的时候,经常会遇到很多网站,有的网站只是基于一个登录界面进行处理。
尤其是在内网环境的渗透测试中,客户经常丢给你一个没有测试账号的登陆网站页面,让你自己进行渗透测试。如果你一开始没有经验,你可能无法开始。
今天,我将简单地谈谈如何只用一个着陆页进行渗透测试。
0x00
在条件允许的情况下,我们可以在渗透测试开始前拿出我们的扫描仪进行扫描。目前最常用的是AWVS和Nessus
此外,我们还可以使用其他一些自动化测试工具,例如 Nikto 扫描仪、Appscan、W3af,以及最近长亭科技的 Xray 扫描仪。
尤其是X光扫描仪,据说很多小伙伴都用它挖了很多漏洞。
以下是这些工具的一些使用方法,不再赘述
0x01 SQL注入
密码绕过
如果能直接绕过登录,直接访问系统内部资源,自然是最好不过了。
通用密码是最好的密码之一。虽然它不太可能存在,但它确实偶尔存在。稍微尝试一下也不会浪费太多时间。
例如 ‘ 或 1=1 –
“或 “a”=”a
网上有很多万能密码,随便搜一下。
比如这种方式,可以直接访问后台
登录端口SQL注入
一些系统在登录端口有 SQL 注入。目前我遇到的Oracle和MySQL登录端口注入比较多。我们可以先在登录时抓包,然后根据抓包信息构造payload。
值得一提的是,有时我们需要在 Burp 中修改数据包格式(更改正文编码)才能成功注入。
这是一个例子:
正常登录错误
正常登录错误
添加报价
修改payload,使返回的数据包不同,判断是否存在SQL注入。
还有,这种SQL注入并不少见爆破用户名密码常用字典,很多网站都可以尝试,很有可能存在这个漏洞
0x02 明文传输/用户名可枚举/弱密码爆破
明文传输
这可能是我们的渗透测试中最常见的一种漏洞。其实也不能算是一种弱点,只能说是一种不足。明文传输在网站上随处可见,银行网站除外。,很有可能每个密码都经过特殊加密然后传输。
用户名是可枚举的
该漏洞的存在主要是因为输入的账号密码的判断所回显的数据不同。我们可以使用它来枚举用户名,然后使用枚举的账户名进行弱密码枚举。爆破。
作为一种防御措施,您只需要将用户名和密码错误的回显更改为相同的,例如用户名或密码错误。
爆破弱密码
弱密码可以说是渗透测试中最常见、危害最大的漏洞,因为它没有技术性或创新性,但却充满了“破坏性”,尤其是在内网环境中。密码无处不在。最常用的网页爆破工具是 Burp。我们通常使用 Nmap 扫描来扫描其他端口,例如 3389、SSH 等。
弱密码爆破工具推荐,详情见下文,不再赘述:
九头蛇:
超弱密码:链接:提取码:blj3
御剑 RDP 爆炸:
布鲁特:
此外,我们还可以根据网站域名和收集到的一些信息进行自定义爆破。例如,在一次内网渗透测试中,我发现管理员的名字缩写为crj,然后我生成了一堆密码,最后成功登录的账号密码是crj112233。
字典:
词典也有很多,大家可以在网上搜集更多。有时,您与 Getshell 只差一个弱密码。
另外,有时我们也可能会遇到系统有默认密码,这里有一些在网上曝光的默认账号密码
0x03 扫描
目录扫描
在我看来,这是最好的目录扫描工具:,DirSearch
它已经成为我日常渗透工作中不可分割的工具之一,我们可以多层次扫描,枚举子目录的目录,经常能找到突破口。
另外还有御剑:也比较常用
JS扫描
JS 文件经常用于渗透测试。有时候我们可以在 JS 文件中找到我们平时看不到的东西,比如重置密码的 JS 和发送短信的 JS,所有这些都可能是未经授权的。参观了。
对于 JS 扫描,推荐使用 JSFind:
同时也会提取页面中的URL,一个简单的例子
nmap扫描
Nmap的强大功能可以让我们第一时间获取网站的端口信息,而这些端口信息往往可以给我们很大的帮助,比如开放3389端口,或者检测一些敏感端口
关于 Nmap 的使用无需我多说。它是每个安全工程师都必须精通的工具。以下是我的一些ports的总结,希望能给大家一点帮助。
扫描目录和JS时,注意多次爆破,遍历目录和JS访问多级域名。
在一个学校网站,我用Nmap批量检测网段,得到一个登录网站,并遍历网站中的目录,得到一个测试页面,最后在这个页面的JS文件中得到一个接口。,通过该界面重置主登录页面的密码。
0x04 框架漏洞
查找 CMS 或 Web 框架以及某些供应商的服务中的漏洞
比如Apache中间件组件Shiro反序列化漏洞,这里简单介绍一下:
需要一个 ysoserial.jar
和默认键
POC
指示
1: java -jar ysoserial.jar URLDNS “在你的 ceye.io 或 burp”>payload.dat 的协作者客户端函数中
2:运行python脚本生成cookies
3:将cookie复制到burp并发送数据包。这时候会记录DNSlog。我们可以再次构造命令执行,这里不再深入。
致远A8-getshell:
思考PHP:
Struts2:
网络逻辑:
以及主要的Java反序列化漏洞等等,这里的漏洞层出不穷。
0x05 逻辑漏洞
寻找逻辑漏洞,例如忘记密码、任意用户注册
任意重设密码
例如
这时客户端会发送一个验证码包。我们在随意输入验证码,发送包裹,退回包裹。
返回包错误的回显是 {“status”:0}
将退货包替换为 {“status”:1}
重置您的密码
乌云的例子:
任何用户注册
爆破注册页面的验证码,可以注册任意用户
同样,如果这里的验证码是四位数字,有时可能会爆炸,任何用户都可以重置密码。
短信轰炸
短信轰炸很常见。一般发送验证码后爆破用户名密码常用字典,就可以抓包,不断重复。如果你做了一些保护,你可以通过添加空格、特殊符号或 +86 来绕过它。
无保护的短信爆破很常见
登录不完整
这个漏洞我发现过一次,就是在登录页面随意输入任意账号和密码,然后抓包,修改返回包,欺骗前端,获取一定的权限,它的功能并不完善,但是你仍然可以看到很多敏感数据。
逻辑漏洞需要根据不同的网站进行测试。逻辑漏洞的方式多种多样,经常会遇到很多奇怪的手势。例如,如果 cookie 的某个字段是 Guest,则可以通过将其修改为 admin 来更改用户身份。它也需要在日常工作中使用。越来越多的总结。
0x06 禁用 JS
禁用JS插件,查看页面源码 12
禁用JS查看源码,有时会有意想不到的惊喜。
例如,缺少一些重定向和一些权限。当我们没有被授权进入后台时,我们会被重定向回登录页面。如果我们此时禁用 JS,我们可以控制某些权限。
不用说,看源代码,一些不太聪明的程序员可能会在源代码中透露一些不可告人的秘密,比如测试账户,我们可能会发现一些网站背景结构和JS接口。
0x07 网址重定向
常用URL跳转参数:
0x08 未经授权的访问
各种未经授权的访问,无需登录即可进入后台
非授权访问这里有比较强的总结,需要我们注意端口。
0x09 验证码问题
验证码可以修改收件人
您可以将A账号密码验证码的接收者更改为B账号,这样A账号的验证码就会发送到B账号的手机,B账号可以重置A账号的密码
比如A账号moblephone=13333888888,这个是可控的,我们修改为moblephone=18888888888,然后就可以收到A账号的重置验证码了
登录验证码可以绕过
可能会有通用的验证码0000或9999,但这种情况比较少见。更多情况下,返回包被修改,可能绕过逻辑判断。
验证码可爆
验证码失效时间过长,纯数字或字符太短,可爆。
验证码回显前端
对于一些网站,验证码会回显到前端,你只需要抓包获取验证码
验证码不刷新
验证码不会自动刷新,这样我们可以多次使用一个验证码。我们只需要输入一次验证码就可以开始暴力破解。
识别码
这里使用PKAV的验证码进行自动识别
链接:提取码:szo2
0x10 摘要
简单来说,当我们遇到一个登陆站点时,我们需要做
1、条件允许时开启漏洞扫描
2、端口、目录、JS文件等敏感信息检测
3、爆破弱密码
4、抓包看有没有逻辑漏洞,或者试试SQL注入
5、查找框架漏洞
PS:如果遇到一些大型网站的主站登录,比如银行,建议放弃并寻找其他业务,比如招聘网站登录等。
免责声明:本公众号分享的内容仅用于网络安全爱好者的技术讨论,禁止以非法方式使用。所有渗透都需要授权!否则需自行承担,公众号及原作者不承担相应后果。
请登录后发表评论
注册
社交帐号登录