记一次对SRC站点测试
前言
这是一篇较基础的常规渗透测试科普文,包含信息收集,暴力破解,SQL注入,文件上传,及在遇到问题时的一些想法及思路,希望各位看完能有所收获。本文配合瓜子可乐食用效果更佳。
PS:测试站是SRC平台上的一个站点,截至投稿前,已将漏洞提交厂商并验证已经修复。
信息收集
通过访问网页,根据Response的信息可以获取服务器的部分信息,如下:
域名:http://xxx.xxx.cn/
服务器系统:暂时无法确定
中间件:Tomcat/JBoss
脚本:jsp
数据库:暂时无法确定
根据已有的信息有如下几点思路:
可以测试登录框是否存在SQL注入
可以测试是否存在JBoss反序列化漏洞
后台没有验证码,可以尝试爆破
根据上述思路分别进行测试:
1. SQL注入
手工测试引号无报错
抓包使用神器sqlmap测试
测试不存在SQL注入,此时也可以大致判断该站点不存在WAF,否则应该被拦。
2. JBoss反序列化漏洞
使用工具进行测试,返回漏洞不存在
3. 登录爆破
上面两种思路行不通后,还剩登录爆破一种方法,但是登录爆破最好能先确定账户,再去爆破密码。此处可以看到错误提示是:“用户名或密码错误,请重试!”,而不是理想中的“用户名不存在”或者“密码错误”之类的提示。
这是遇到的第一个问题,如果盲目的爆破成功率不高,不过爆破本来也讲究运气成分。此时我陷入了沉思,仔细回想了一下渗透测试心法口诀要领,发现好像并没啥用。
登录爆破
在思考的过程中,顺手右键查看源代码,有了新的发现,如下:
所以一定要养成查看源代码的习惯,此处html注释了忘记密码的链接,故页面上不呈现,但拼接访问功能是正常的。
上面返回的是“用户不存在”,此处可以先爆破用户名。使用burp抓包进行暴力破解,分别采用了3、4、5、6位数字字典各选一百个左右进行测试,均不存在,此处略去过程,然后测试姓名拼音的字典。
如上邮件不匹配说明存在该用户,否则是用户不存在。故成功爆破出了用户名,导出用户名进行密码爆破,同理在登录处抓包爆破。
成功爆破出弱口令密码为123456的账户ligang
文件上传
如上成功登录了管理功能界面,此时应该尝试的是寻找文件上传点,通过上传进行Getshell。大致浏览了一下管理功能页面,发现可利用的上传点有2处:
1、KindEditor4.1.10 (2013-11-23) 编辑器,貌似暂时无解
2、自带的上传功能
测试自带的上传,发现附件处可以上传jsp文件,但无路径,访问提示下载
在此类的jsp网站中,上传了文件后是通过类似ShowPicAction?showstyle=_s&attachid=8ae57e81638fe1600166dxxx去访问的,若想找文件上传真实路径难度很大
SQL注入
在上述问题思考一段时间未解决后,觉得应该先放一放,看看有没有其他可以利用的地方。通过查看burp发现Referer处url引起了我的注意,如下:
xx.jsp?id=xx,这样的形式不是最可能存在SQL注入的嘛,手工测试下
加个单引号,爆了SQL语句错误,初步判断存在SQL注入,此处测试在未登录的情况下无法访问该页面,因此必须携带cookies进行访问,抓包使用sqlmap进行测试。
的确为SQL注入,当前用户为sa,因注入类型不支持,故无法直接执行系统cmd命令。
此时的思路有:
1、看服务器是否对公网开放1433端口【此处未开放】
2、读取系统管理员密码,登录系统管理员后台,可能功能模块更多
后台getshell
通过上述的思路获取管理员的账号密码,此为sqlmap的基本操作,略去细节
花了一块钱解密了sysadmin1的密码进行登录
在把左边的菜单栏都几乎点了一遍,都没可利用的后,才发现右上角有个系统设置,顿时有点身心疲惫的感觉。系统管理员的功能确实多很多,如下,获取到了数据库连接信息
通过一项项的测试,终于找到一处上传是直接返回路径的,采用js本地验证,通过burp抓包修改后缀绕过
访问shell的路径,成功拿到shell
如上,当前服务器为内网环境,当前用户已经为管理员权限,可以直接添加用户,因此省去了提权的步骤
代理进入内网
如上可知服务器在内网,需通过代理才能进行访问,此处使用reGeorg+SocksCap建立ss5代理,从而进入内网。
如上,成功获取该服务器权限并进入内网,且发现该服务器域环境,再继续下去就是内网横向渗透及域渗透相关的,本文至此完。
本文仅用于普及网络安全知识,提高小伙伴的安全意识的同时介绍常见漏洞的特征等,若读者因此做出危害网络安全的行为后果自负,与合天智汇以及原作者无关,特此声明。本文为原创文章,转载请注明出处!