app开发定制【xctf之unseping】

xctf之unseping

这是一道,app开发定制让我头皮发麻的题,app开发定制前期感觉一般,app开发定制后面感觉好像搞不定了。。。看了writeup才知道phpapp开发定制还能这样用。app开发定制大开眼界了属实


题目如上,app开发定制一眼就可以看出这就是考察php的,感觉这不so easey?好像还真不是(菜鸡挠头)。
首先就是正常的反序列化,在反序列化的时候首先触发__wakeup()函数,迭代参数中的值进行过滤,解题的关键就是绕过这个过滤。可以看到,|,&,;,空格,/,cat,flag,tac,php,ls这些字符全部被过滤,其实正常来讲这里面空格被过滤是最难受的,我在网上找到了好多空格被过滤怎么绕过的,但是实际上能用的很少,并且有的符号在某些指令运行时会产生异常的问题。。
那下一步先构造php类


被拦截了。

下一步我们使用双引号在指令中间。

哟呵,好像可以了。那下一步是不是直接读取flag_1s_here?

我们使用<>代替空格,然后。

返回的是空。。。。下一步是不是应该使用ls -l看下文件信息?那么问题来了,我们可以使用ls<>-l指令吗?

没错,执行出现差错了,没有展示出我们想要的信息,并且创建了一个名叫 -l 的文件

这才是我们想要的信息。
我尝试了很多代替空格的方法,但是都不行。总而言之,我测试很多都不行。包括base64转码然后解码,可是这些需要的空格,|,;都被过滤了。
最后没办法了,看了writeup,让我大开眼界了属实。


这是writeup的关键点,没了,就这些,直接给你。。
我看了半天没看明白printf(“\154\163\40\55\154\40\57\146\154\141\147\137\61\163\137\150\145\162\145”);这是什么编码,为什么可以直接执行。后来百度才找到,这是字符八进制,然后使用\并且双引号才可以转码成正常字符,并且可以被执行在exec()函数中。


这道题关键点就在于使用编码直接绕过函数检查,是我太菜了。




出来了,发现flag_1s_here是一个目录。(但凡这是一个文本文件,直接ca"“t<>fla”"g_1s_here结束,当然这道题确实是一道不错的题。)
下一步直接ls -al flag_1s_here

显示出在flag_1s_here文件夹下有一个flag_831b69012c67b35f.php,下一步cat flag_1s_here/flag_831b69012c67b35f.php。

出来了。。。

这道题如果flag_1s_here不是目录,那这道题难度就会下降很多,多了这个目录,你会发现过滤的这些东西导致我们很多手法没办法用,最后发现八进制的奥秘。(当然大佬们可能还有别的方法,希望给菜鸡弟弟指点下。)

参考链接

ctf php审计从题目中的过滤学习绕过:
在CTF比赛中,命令中空格被过滤的解决方法:
cat命令读取一部分_命令注入绕过方式总结:

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发