本文共 1035 字,大约阅读时间需要 3 分钟。
闲来无事,最近在做CTF题,感觉再不练练手我就废了。
flag
地址题目:
题目分析:
看到题目,有两种思路:1).利用文件上传拿
webshell
,然后找到flag
; 2).利用文件包含拿webshell
,然后找到flag
。 目标很明确,思路也有,然后实践操作,结果发现文件上传走不通,然后想利用文件包含漏洞可以读文件,经证实的确可以读取到文件,但是要找flag
就比较难了,因为我不知道flag
在哪啊!于是就有另一种想法,利用远程文件包含拿webshell
,后来经读upload.php
源码发现,应该是不能远程文件包含的。那么最后就剩本地文件包含了,正好呢此处可以上传文件,因此先上传一个图片,不过图片内容改为一句话木马,然后包含这个图片,此时图片里面的一句话木马就会被解析执行,这样我们就拿到了webshell
.
具体操作如下,正好回顾下基础知识
/etc/passwd
flag
文件名和路径,这里就顺便演示下,如下:upload.php
文件源码读取格式 ?file=php://filter/read=convert.base64-encode/resource=文件名
然后base64解码
此时看到
upload.php
源码,可知文件上传拿webshell是行不通的
index.php
,如下:然后base64解码
可以看出,此文件包含是对包含文件参数
file
是做了正则匹配过滤的。
解题
zzqsmile.jpg
,然后抓包写一句话。upload/zzqsmile.jpg
,如下:nice! 没毛病!
flag
。flag: flag{pHp_Lfi_t0_Be_Shell!} 之前读文件读的就是这个文件。
flag
index.php?id=1
。可以发现,此处可能就是注入点,经确认的确存在注入。
flag
。解题完毕!
转载地址:http://koxto.baihongyu.com/