N0rth3ty's Blog.

SECCON Web

字数统计: 696阅读时长: 2 min
2018/11/09 Share

最近刚好在研究XSS的东西,今晚本来备课,看到这道好题环境还在,就做一下吧

Ghostkingdom

http://ghostkingdom.pwn.seccon.jp/FLAG/

注册登录整理下思路
初步猜想是通过xss+csrf去上传图片
然后可能有一个截图的点,猜测的话是一个SSRF的点,暂时不知道怎么利用

注意到有csrf的token
image

  • 发现cookie和csrf的token值是一样的
  • 发现登录接口是一个get请求

重新看一下发送消息的点
这是我们消息的预览
image
按照我们的猜测尝试了XSS,但是<>被过滤了
这种情况的话基本常规的XSS肯定是走不通了,所以我们没办法打到cookie

再看看截图的点,截图的点会访问指定的url并且进行截图,所以肯定是能够触发SSRF的
输了个localhost发现有waf,ban掉了127, ::1, local
用0.0.0.0可以绕过,成功
image

跟进一下思路

  • 不能直接用xss打到cookie
  • 能够打到服务端的SSRF,不过好像暂时只能返回一个截图(卵用

到这里思路卡住了,感觉没有什么可控的点
又倒回去看了下发消息的两个点,原来是有区别的(ctfer不需要视力,摔
这里的请求格式是这样的

1
?css=c3BhbntiYWNrZ3JvdW5kLWNvbG9yOnJlZDtjb2xvcjp5ZWxsb3d9&msg=kkkkk&action=msgadm2

不难看出这个css是base64的(所以我刚开始在第一个提交框测试了半天都是乱码,再摔
看到输出是在style标签里面的,可以想到css也能注入,用途就是获取前端信息
而再回到我们开始注意到的,cookie的值和csrf-token是一致的
所以我们尝试注入css代码来获取这个token

写一个exp来构造payload,然后利用ssrf去加载这个链接
image
需要先登录,看来开始发现的登录接口为get在这里就用得上了(所以反常的地方都是肯能有问题的
然后用我们的账号登录一下,截图是登录成功了
payload再打一遍上去
服务器成功收到信息
image
但是他妈只能逐位爆破,而且每次要和服务器交互,又不会写bash脚本(应该说有我写脚本的时间我都跑出来了
只能手动了。。。
(web狗要学的真多
苦逼的爆破了好久
image
csrf=5e88059db48f744f9a9923
改了下cookie,登录成功
image
所以现在我们能上传图片了
image
报错有一些可用信息
这是八月份底爆出的Ghostscript命令执行的漏洞
目录已经给了,ls一下可以看到flag文件,直接cat

1
2
3
4
5
6
%!PS
userdict /setpagedevice undef
legal
{ null restore } stopped { pop } if
legal
mark /OutputFile (%pipe%$(ls /var/www/html/FLAG/FLAGflagF1A8.txt)) currentdevice putdeviceprops

image

CATALOG
  1. 1. Ghostkingdom