命令执行的题目加理解

听课笔记ctfshow的理解29

在这里插入图片描述上图中我们会看到有一个preg_match 的函数进行正则表达式的匹配,成功返回1,否则返回0
要有分号不然出不来
在这里插入图片描述 phpinfo();使用时后要加分号 分号可以用?>代替

主要作用用法可以看这https://blog.csdn.net/lituxiu/article/details/89330431
在这里插入图片描述
查看之后出现这样的
在这里插入图片描述
发现flag被过滤
在这里插入图片描述
再输入1.txt 发现没有回显,出问题了是因为这个过滤了flag,所以不能直接写flag
将flag改为 fla?然后再执行就可以了
这个是将flag文件复制到1.txt的文件当中
cp:简单来说就是把文件复制一下

ctfshow web30

在这里插入图片描述

换一种方法将文件中的flag.php,复制下来放在1.txt里,问号代表的是占位符,意思是复制以fla开头的.php的文件
在这里插入图片描述
然后执行1.txt就可以得到flag

ctfshow 31

从图中我们可以看见被过滤了许多东西
在这里插入图片描述换一种思路去
在这里插入图片描述
执行get第一个参数,1相当于这个参数逃逸出去了,不属于c可以任意使用
PHP eval()构造用于将输入字符串评估为PHP,然后以这种方式对其进行处理。 Eval()不是函数,但是就其功能而言,它就像输出一个东西一样工作-除了将其输出为文本而不是将其输出为要执行PHP代码之外,它的功能与之类似。 eval()构造的一种用法是将代码存储在数据库中,以便以后执行。
其他那些过滤字符对它不起作用,直接使用system将文件的出来了就好了
在这里插入图片描述执行之后发现页面空白直接查看源代码就可以了
对参数进行一个跳板传出一个值不属于里面从而绕过限制

ctfshow32

被过滤的更多了,将使用其他的方法(跳板的方法也可以在这里使用)
在这里插入图片描述使用文件包含的方法去做,先包含一个系统文件看能不能包含成功

在这里插入图片描述etc/password 包含系统文件 也属于文件包含里面的/etc/passwd每一个分段的含义: 详情查看原文链接:https://blog.csdn.net/afxcontrolbars/article/details/41725561
include #include叫做“文件包含” / include 语句包含并运行指定文件。

功能:它的功能是用来指定文件的全部内容替换程序中的命令行,从而使指定的文件与当前源文件连成一个源文件

详细解说:https://blog.csdn.net/u011352311/article/details/17758931?utm_source=blogxgwz1
在这里插入图片描述
若直接使用flag.php我们是看不到的,包含没有输出,是因为我们没有用分号进行分隔造成文件无法输出我们可以使用文件包含中php
在这里插入图片描述
输入flag.php执行就好得到再解码,

ctfshow 33

多过滤了一个双引号
在这里插入图片描述使用相同方法同上也可以做但是要是使用require方法也可以,然后就可以了
在这里插入图片描述

ctfshow 34

多了一个冒号不能用上面的方法对上述进行一些有效的过滤了
在这里插入图片描述如果将分号和括号过滤了就只能使用语言结构了
语言结构有echo print isset unset include require 可以不需要使用括号
在这里面 echo 和 isset 使用不了
在这里插入图片描述print也使用不了,跟二进制有关系,里面存在一个数据空间和代码空间,二进制有数据段和代码段,而在这里php属于一个数据段,不是代码段,是作为一个字符串要变成eval必须要有括号才能执行
(前面这句话不太理解什么意思)
只能用include 包含系统文件可以正常读取感觉和前面的方法差不多

ctfshow 36

只是不能用数字换成字母就好了

在这里插入图片描述

云演 exec

打开环境发现
在这里插入图片描述

在这里插入图片描述使用127.0.0.1|ls查看发现没有flag的目录出现index.php说明flag可能是在,根目录在这里插入图片描述查看到flag可直接cat得到flag
在这里插入图片描述

在这里插入图片描述

[ACTF2020 新生赛]Exec 1

在这里插入图片描述打开发现有这样一个窗口输入127.0.0.1&ls 显示index.php
在这里插入图片描述
127.0.0.1&cat index.php发现什么也没有说明flag没有在里面使用ls查看根目录试一下
在这里插入图片描述果然flag在根目录里在这里插入图片描述然后使用cat /flag就可以得到flag了
在这里插入图片描述

云演ping

这个命令分隔符被过滤了解决了就好
| || & && . ; - <> $ %0a %0d `

函数理解

还没全都看见,目前还没学到

popen()

popen() 函数使用 command 参数打开进程文件指针。

如果出错,该函数返回 FALSE。
在这里插入图片描述

exec()
system()
popen()
passthru()
proc_open()
pcntl_exec()
shell_exec()
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值