NSSCTF练习2

[NSSRound#20 Basic]CSDN_To_PDF V1.2

开题是一个pdf转换器

题目提示是csdn的,猜测是对针对csdn有所过滤,尝试监听一下

抓包,发现是python的

然后尝试监听一下

得到weasyprint

找到漏洞实现ssrf,这里还过滤了html

服务端可以直接放在index.html绕过html的过滤

得到pdf之后使用binwalk分离一下就好

找到flag

[NUSTCTF 2022 新生赛]Translate

开题是一个简单的页面

查看源代码

下面有神秘的字符串,base64解码得到/test.php得到一部分代码

1
2
3
4
5
6
7
8
9
10
11
12
<?php
include_once("fun.php");
//我的室友板鸭把flag藏到flag.php里了
highlight_file(__FILE__);
error_reporting(0);

$file = $_GET['file'];
if (!is_file($file)) {
highlight_file(filter($file));
} else {
echo "我室友说了,会有大坏蛋来敲门!";
}

highlight_file()可以尝试伪协议读一下flag.php

base64流被过滤了,我们使用UTF-8流读一下

又得到部分代码

可以看到关键代码

1
2
3
4
5
if ($row['password'] === $password) {
alertMes($FLAG, 'index.php');
} else {
alertMes("wrong password", 'index.php');
}

fuzz一下,过滤了下面的东西

这就是经典的Quine注入,char被过滤了,我们可以使用\x绕过

打不通,提示事不过三,这里我们使用了三次replace操作,可以尝试大小写绕过

1
'/**/union/**/select/**/REPLACE(replace('"/**/union/**/select/**/REPLACE(replace("%",0x22,0x27),0x25,"%")#',0x22,0x27),0x25,'"/**/union/**/select/**/REPLACE(replace("%",0x22,0x27),0x25,"%")#')#

打通了。

Quine注入可以参考在sql入门

[NSSRound#7 Team]新的博客