SWPUCTF 2022

Web

numgame

进入页面后是个文字游戏,题目为 10+10=? ,但是无论如何加减都不能改到 20

因此开始尝试 F12 打开开发者工具,但是不起作用,发现右键也被禁用了。下一步直接一把梭把 JavaScript 禁用了,禁用之后打开开发者工具,可以发现 /js/1.js ,其内容如下

TnNTY1RmLnBocA== 进行 Base64 解码可以得到 NsScTf.php ,访问 NsScTf.php 可以得到以下内容

通过提示可得知应该使用 POST 请求协议,由于 nss 类内函数 ctf 为静态函数,可以直接通过 nss::ctf 来调用。通过访问 /hint2.php 可以得知类名为 nss2 ,因此通过构造 payload p=nss2::ctf 就可以得到 flag 了。

ez_ez_php

Payload 如下

回显如下

最终 Payload 如下

ez_ez_php(revenge)

Payload 如下

ez_rce

先来一波 Dirsearch

robots.txt 内容如下

访问 /NSS/index.php 可以得到提示 ThinkPHP

通过 ThinkPHP-Scan 扫描一下。

构造 Payload 如下以来传入 Shell

通过蚁剑连接

连接后发现根目录的 /flag 是空的,发现 nss 文件夹,最后发现 flag 在 /nss/ctf/flag/flag

奇妙的MD5

在 Header 头可以看到 Hint 。

可以通过 ffifdyop 进行绕过,原因是 ffifdyop 经过 md5 加密后变成 276f722736c95d99e921722cf9ed621c ,再转换成字符串则变为 'or'6É]™é!r,ùíb 使得以上 SQL 语句变成了如下样子。

跳转后,得到源代码如下

Payload 如下

可以得到以下代码

Payload 如下

就可以得到 flag 了。

where_am_i

问题:什么东西是11位啊?

那就是需要找图上这个地方的电话号码。

http://www1.zmjd100.com/hotel/pc/1283140?checkIn=2023-07-26&checkOut=2023-07-27

02886112888

1z_unserialize

构造序列化

构造 Payload 如下

回显如下

构造 Payload 如下

回显就是 flag 。

ez_ez_unserialize

这题需要 __wakeup() 魔术方法绕过,先构造序列化。

把对象属性个数修改一下绕过 __wakeup() 即可,构造 Payload 如下

flag 就出来了。

xff

Payload 如下

js_sign

dGFwY29kZQ== 解码得到 tapcode

http://www.hiencode.com/tapcode.html

即可得到 flag 。

ez_sql

先探索下看看哪些被过滤了(

构造 Payload 如下

可以推断出字段有 3 行。

构造 Payload 如下

webdog1__start

查看源代码如下

看来是 md5 弱比较,构造 Payload 如下即可绕过。

查看 Header 头可以发现 Hint 如下

然后又根据 Header 头发现 Hint

使用蚁剑通过

连接一把梭就可以获得 flag 了。

funny_php

  • L1 - 通过科学计数法即可绕过,例如 1e9

  • L2 - 双写即可绕过,即 NSNSSCTFSCTF

  • L3 - MD5 强比较,通过 s878926199as155964671a 即可绕过。

Payload 如下

ez_1zpop

链子如下

构造序列化如下

MD5 强比较,通过 s878926199as155964671a 即可绕过,把对象属性个数修改一下即可绕过 __wakeup() ,构造 Payload 如下(跳过 ls /)

就可以得到 flag 了。

funny_web

构造 Payload 如下

Ez_upload

回显 后缀名不能有ph! ,尝试改成其他名称,换成 .jpg 回显 还是换个其他类型吧

先上传 .htaccess

回显 /var/www/html/upload/5aca69d12f41e6e7c397787dcb501ac3/.htaccess succesfully uploaded! ,之后上传图片马

回显 /var/www/html/upload/5aca69d12f41e6e7c397787dcb501ac3/1.jpg succesfully uploaded! ,用蚁剑一把梭发现 flag 根本不在根目录。

flag 就在 phpinfo() 里面。

file_master

图片必须是 .jpg 且规格最大不超过 20*20

index.php 源码如下

上传图片马,并修改后缀为 .php

通过访问

可以得到目录

通过访问

可以得到 flag 。

Power!

源代码存在提示如下

构造 Payload 如下

可以得到 index.php 的源代码

构造 Payload 如下

可以得到 flag.php 的源码如下

因此需要通过 curl 方法来从内网获取到 flag,链子如下

构造序列化如下

需要绕过 __wakeup() 魔术方法,所以需要修改对象属性个数,序列化变为

再进行 base64 编码就得到最后的 Payload 如下

得到回显如下

通过 base64 解码即可获得 flag 。

Last updated