信息收集
先查看开启了什么样的服务:
发现开了80端口,打开看看
爆破网站目录,收集网站信息:
test页面打印了phpinfo的信息,知道了php版本,各种配置文件路径,网站根目录,以及其他一些敏感信息。
攻击阶段
进一步在打开那个torrent的文件夹,发现是一个bt种子上传后台,那无疑接下来的渗透都是在这个后台下进行的
浏览了一下网站,有注册模块,登录模块,还有上传模块,注册了一个账号,点击upload模块,尝试绕过上传限制:
这里尝试了好几种绕过上传的方法,发现好像都没办法绕过去,感觉进了一个死胡同。。。
于是上传了一个真实的BT文件,观察一下后台:
在上传文件信息页面可以上传编辑torrent文件的截图,此时发现第二个上传点,看说明只允许jpg, jpeg, gif, png. 等图片文件
如果只是在content-type上做了限制,那则非常容易绕过。用burpsuite截断了上传请求,修改content-type为image/jpeg,成功上传!
在upload文件夹验证可以打开执行上传的php文件,于是用msf生成一个php后门:
上传到目标服务器,网页上执行php后门文件,成功拿到webshell
提权
检查权限,只是一个很小的web权限:
这是没有办法拿到flag的,必须提升到root权限,查看内核版本:
根据提示,在msf搜索对应内核版本的提权脚本:
在这里我做了很多很多很多很多的尝试,都失败了。
最后用15704.c这个脚本成功提权...
最后拿flag:
总结
这部机子做的还是磕磕绊绊,在信息收集的时候还有好些发现,比如又继续爆破了torrent文件夹里的目录:
这些文件我一个个都点了进去看,其中在readme文件里发现了账号管理员的默认登录密码
但是试了一下,应该被改掉了。
然后在database这个文件夹里,发现了有项目创建时的原始sql语句
打开来看可以清楚知道后台的数据库名,数据库表,各个表的字段
在torrent文件信息页面,我无聊尝试sql注入的时候,页面回显了sql报错信息,这个就很可能有sql注入漏洞。
然后用sqlmap验证了一下,果然是存在sql注入的
我昨晚发现了有sql注入以后大概搞到凌晨三点,因为国内接入HTB的机器有很大的延时,这就非常坑爹,注入结果要一个个去猜解,耗时巨大。后来发现出来的admin账号的密码网上的md5解密要搞好几天才能解出来,于是放弃。想拉mysql的密码,报没有权限(我就不一一截图了),想拿os-shell的时候也没有文件写入权限。所以sql注入这条路好像就走不通了。。当然也可能是我个人水平的原因,我昨晚实在太困,就放下了,也许其他大神有更好的方法吧。但是也有可能sql注入只是机器作者放出来扰乱攻击者视线的。。
感受
1,不能执着于一个攻击点,不要在一棵树上吊死。
2,无论是攻击还是提权,要不断尝试枚举。
3,信息掌握的越多,可以使用的方法就越多。无论是前期信息收集,中期漏洞攻击,还是后期系统提权。(还是要多学习哈)