谈谈对后台登陆页面的渗透测试

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

hashcat怎么设置hashcat怎么设置

0x00 引言

在渗透测试中,有时我们会遇到后台登录界面,但不知道如何入手。作为一名渗透实习生,我最近在某公司进行实习,对于目标固定的系统渗透有了一些经验。因此,我想分享一下对网站后台登录界面的渗透思路,希望能对大家有所帮助。

0x01 开始

当我进入登录界面时,通常会先尝试使用万能密码来测试输入框是否存在注入漏洞(尽管这种情况已经很少见)。如果没有注入漏洞,我会尝试使用常见的用户名和密码(如admin、123456)来测试弱口令,希望能侥幸猜中密码。主要是观察回显信息,查看是否存在账号锁定策略、密码不正确或用户名不存在等信息,以便尝试遍历可能存在的用户名。如果没有验证码,我会使用爆破工具进行暴力破解;如果有验证码,我会尝试绕过验证码,如果无法绕过,就只能手动尝试一些常见的账号密码组合,希望能运气好猜中密码。

0x02 爆破

如果没有验证码的阻碍,爆破就没有太多好说的了,只需要使用一个好的字典就可以了。但需要注意的是,有时密码传输会使用md5或base64等加密方式,这时除了自己编写脚本外,还可以使用burpsuite的intruder模块来进行爆破。

爆破的传统思路是固定账号爆破密码,还有一种思路是固定密码爆破用户名。比如使用固定密码123456,爆破常用用户名或常用人名的拼音。

0x03 扫描目录

目录扫描是一个充满惊喜的过程,说不定能扫描到未授权访问的后台链接、备份文件、编辑器、敏感信息等。对于后台登录的网址,经验丰富的渗透测试人员甚至不需要使用工具,就能直接猜到常见的路径(如.php)。对于一些特殊情况,可以尝试使用fuzz的方法,逐层扫描,寻找可利用的信息。我曾看过一期衬衫的视频,其中讲解了fuzz的方法,使用的工具是wfuzz,感觉不错,有兴趣的可以去了解一下。

这里我想分享一个我在授权渗透中遇到的案例:通常在给客户的后台系统进行渗透测试时,客户会提供一个测试账号,除了测试登录界面外,还需要测试后台的功能模块。但是这次当我询问客户要账号密码时,客户回答说:“你们是要模拟黑客进行渗透测试,那就自己找办法进去吧。”好吧,作为实习生的我只能硬着头皮尝试登录界面了。

我首先查看了链接,发现这是一个Java站点,链接以.do结尾,但尝试使用struct2工具没有成功。

观察登录界面,发现有验证码,网站看起来版本也比较新,感觉不太容易攻破。尝试注入没有结果,于是抓包查看验证码是否可以绕过或保持不变,结果发现验证码很可靠,无法暴力破解。虽然验证码识别工具也可以使用,但总觉得不太可靠。当我绝望地找不到漏洞时,决定再尝试扫描目录。意外地发现了一些有趣的东西。

首先,我扫描到了一个services服务路径,得知了Apache Axis组件的版本信息。然后我想到这个组件最近刚爆出一个RCE漏洞,尝试了一下,但没有成功。接着,我尝试了四月份CNVD上看到的另一个RCE漏洞,也没有结果。此外,我还扫描到了一个ckfinder编辑器。一看,我滴乖乖,难道已经有黑客入侵了?赶紧上网查找这个版本是否存在漏洞,并尝试绕过文件上传限制。但很遗憾,这个网站没有解析漏洞可利用,也无法绕过文件上传。不过幸运的是,黑客似乎也没有成功利用。经过一段时间的挖掘,同事竟然告诉我他已经拿到了shell!什么?!

原来他扫描到了一个admin/123456的弱口令,进入了tomcat后台,然后成功上传了war包并拿到了shell。看到这样的操作,我真是无语了,我的字典太差了,连tomcat的目录都没有扫描出来。弱口令漏洞真的很无敌。

0x04 框架漏洞

对于一些常见的CMS,漏洞已经被挖掘得比较彻底了,很难再找到新的漏洞。如果网上(如乌云、seebug、搜索引擎等)上的历史漏洞没有复现成功,那么一般情况下只能寻找逻辑漏洞、网站管理员配置错误或弱口令等。对于一些不知名的框架,通常可以通过登录界面下方的声明找到开发公司和产品版本时间。然后在网上搜索该公司的产品是否曾经爆出过漏洞。如果是开源框架,还可以下载源代码进行代码审计,寻找漏洞。比如Java站点,登录页面的网址通常以.do或.action结尾,可以尝试一下struts2命令执行漏洞,我一般使用安恒的S2漏洞验证工具。另外,像thinkphp的CMS,可以尝试是否存在相应版本的命令执行漏洞。我曾在邮储银行的一个系统登录界面挖到了tp5命令执行漏洞,并获得了1700元的奖励。当然,如果厂商声称漏洞无影响并拒绝奖励,那就是另一回事了……

0x05 弱口令

有些人可能对弱口令不屑一顾,认为它没有技术含量,但实际上,结合社会工程学,它的作用和危害可能比其他漏洞更大,希望大家能重视。最近我去公安厅复测6月份的华为漏洞,检测漏洞是否修复。虽然有几十份报告,但我以为会花很长时间,但实际上只用了大约半小时就完成了,其中部分时间是用来输入网址的(报告不能拷贝到自己的电脑上,只能看着公安厅电脑上的报告手动输入网址)。其中一个原因是漏洞中有很多层级的弱口令,其中大部分漏洞还是部委级别的系统,所以测试速度很快。虽然华为期间比较特殊,但这个比例还是能说明问题的。

以下是某位大佬对2014年底12306泄露密码的统计分析:

  • 密码中包含123456的数字出现了3236次
  • 密码中包含123的数字出现了11213次
  • 密码中包含520的数字出现了4549次
  • 密码中包含1314的数字出现了3113次
  • 密码中包含aini的字符串出现了877次

对于网络设备,如交换机、路由器、安全设备等,可以尝试使用默认密码。以下是一些常见的默认密码:

  • 天融信防火墙:登录地址:用户名:superman 密码:talent 技术支持热线:8008105119
  • 天融信防火墙:登录地址:8080 用户名:superman 密码:talent!23
  • 联想网御防火墙:登录地址:8889 用户名:admin 密码:leadsec@7766、administrator、bane@7766
  • 深信服防火墙:用户名:admin 密码:admin
  • 启明星辰:登录地址:8889 用户名:admin 密码:bane@7766
  • 电脑端IP:10.50.10.44/255.255.255.0 技术支持热线:4006243900
  • Juniper防火墙:登录地址:用户名:netscreen 密码:netscreen
  • Cisco:登录地址:用户名:admin 密码:cisco
  • Huawei:登录地址:用户名:admin 密码:Admin@123
  • H3C:登录地址:用户名:admin 密码:admin
  • 绿盟IPS:用户名:weboper 密码:weboper 配置重启生效
  • 网神防火墙GE1口:用户名:admin 密码:firewall 技术支持热线:4006108220
  • 深信服VPN:51111端口 delanrecover
  • 华为VPN:账号:root 密码:mduadmin
  • 华为防火墙:admin Admin@123 eudemon
  • 迪普:默认的用户名和密码(admin/admin_default)
  • 山石:默认的管理账号为hillstone,密码为hillstone
  • 安恒的明御防火墙:admin/adminadmin
  • 某堡垒机:shterm/shterm
  • 天融信的vpn:test/123456

0x06 社会工程学

在我看来,社会工程学是一种非常强大的攻击方式,有时候可以事半功倍。比如在教育站点上,登录账号可能是学号,密码可能是身份证后六位。可以通过百度搜索某学校的一卡通丢失启示,通常能找到学号。或者在文章标题下,如果存在作者名字,可能就是用户名。除了结合管理员的电话、QQ、姓名等信息生成密码外,还可以注意网站的一些关键词。我曾经挖到一个弱口令漏洞,密码是网站域名+123,甚至不需要生成字典就能进入后台。

最近参加某省护网活动时,遇到了一个例子:在测试注册模块时,我使用了自己的手机号码,但这带来了隐患:信息泄露和短信骚扰。这里给大家提供两个短信接收平台,可以帮助大家解决这个问题。

另外,还可以尝试遍历已注册用户。这个在前面的社会工程学例子中有提到,可以查看用户是否存在。

还有一种方法是任意用户注册。当注册用户不需要验证码认证时,可以使用工具进行恶意批量注册用户。

还有一种方法是修改发送包邮箱,尝试覆盖注册。当注册时显示某用户已注册时,在注册新用户时抓包,更改自己的账号信息为admin用户,可能可以覆盖admin用户,重新注册成功。

还有一种方法是任意密码重置。在修改密码时使用其他人的手机号码,可以抓包并更改为自己的手机号码。当自己的手机收到验证码并输入后,就可以成功更改他人的密码。

还有一种方法是跳过验证步骤,直接进入设置新密码页面。这里可以使用乌云上的例子来说明。

0x07 逻辑漏洞

逻辑漏洞是由于一些程序员未考虑到或为了省事而导致的逻辑上的漏洞。一般来说,WAF不容易拦截这类漏洞,因此和弱口令漏洞一样,是相对容易挖掘的一类漏洞。逻辑漏洞的种类非常丰富,这里只介绍一些技巧,希望能拓宽大家的思路。更详细的漏洞细节可以在网上查找资源(并不是因为我懒)。

  • 注册与忘记密码模块:在测试注册模块时,有时会使用自己的手机号码,但这可能导致信息泄露和短信骚扰。可以使用一些短信接收平台来解决这个问题。
  • 云短信接收平台:在注册时使用云短信接收平台来接收验证码,避免使用自己的手机号码。
  • 遍历已注册用户:可以通过遍历已注册用户来查看用户是否存在。
  • 任意用户注册:当注册用户不需要验证码认证时,可以使用工具进行恶意批量注册用户。
  • 修改发送包邮箱尝试覆盖注册:当注册时显示某用户已注册时,在注册新用户时抓包,更改自己的账号信息为admin用户,可能可以覆盖admin用户,重新注册成功。
  • 任意密码重置:在修改密码时使用其他人的手机号码,可以抓包并更改为自己的手机号码。当自己的手机收到验证码并输入后,就可以成功更改他人的密码。
  • 跳过验证:跳过验证步骤、找回方式,直接进入设置新密码页面。这里可以使用乌云上的例子来说明。

0x08 查看网站源码信息

当你思路枯竭时,不妨查看网站的源码,其中可能隐藏着宝藏,说不定能发现一些惊喜。有些程序员会将后台的功能链接放在前端源码中,甚至有些奇葩程序员会在前端代码中存放测试账号密码。首先,我推荐一个强大的工具:JSFinder。它可以在网站的JS文件中提取URL和子域名,用于抓取敏感的JS文件效果非常好。我曾经使用它来抓取网站后台的一个插件源码、后台的功能链接、敏感信息和接口链接(包括XSS和注入漏洞)。我同学曾经说过burp也有抓取JS的插件,但可惜我没有找到,所以我使用的是JSFinder,效果也不错。

这里我想分享一个乌云上的案例,具体链接我忘记了,但我可以分享一下思路:某位漏洞提交者之前发现了一个漏洞并提交了报告,过了一段时间再去看那个站点时,发现系统发生了很大的变化,甚至URL的路径都改变了,难道漏洞已经修复了吗?但是当他右键查看源代码时,发现旧系统的链接和代码仍然保留着,有些只是被注释掉了。关键是,漏洞竟然还没有修复!这让人很无语,这样的开发者真应该被祭天。查看JS代码,甚至一些图片的链接,说不定会有意外的收获。比如R3start大佬的一篇博文中讲的就很精彩,从JS信息泄露到Webshell。文章的思路是:作者在渗透测试中,在一个图片链接中发现了一个三级子域名,删除URL后直接访问根路径,发现了一个title是某管理平台的页面。但页面无法正常加载,因此进行目录扫描,得到了后台地址和后台JS压缩包,然后在源码的某处JS代码中发现了多个可登录的账号。尝试弱口令无果后,从JS压缩包中找到了默认密码规则。成功登录一个普通用户后,发现权限不大。然后通过JS代码找到了其他接口地址,发现存在越权漏洞,通过JS接口越权访问到活动管理页面,获取到了管理员的登录账号。最后找到了上传点,抓包改变后缀名成功拿到了webshell。

引用R3start师傅的一句话:“右键查看JS源码,你可能会发现…被注释的账号密码、接口、token、真实IP、开发环境…永远不知道程序员在JS中给你留下了什么样的惊喜。”

0x09 总结

以上内容比较杂乱,篇幅也比较长,所以有些地方没有展开来讲。有些地方可能讲得比较简略,如果有疑惑可以联系我。顺便说一下我的感想:这段时间的安全服务实习对我帮助很大,面对一些系统目标固定,无法进行横向渗透的情况下,C段、端口扫描、子域名挖掘等信息收集都无法进行,只能硬着头皮攻击目标。这种情况下,我的漏洞挖掘能力得到了培养。回顾以前挖漏洞的经历,我只是走马观花,面对大量的资产信息,只是随便测试一下就结束了,没有深入细致地寻找漏洞,导致以前的SRC挖掘之旅非常困难。因此,我希望新手在挖掘漏洞时能够更加细心,特别是在挖掘SRC时,有时需要花费时间一个参数一个参数地进行测试,才能有所收获。要相信,勤能补拙!

赞(0)