php代码审计前奏之ctfshow之文件包含

访客4年前关于黑客接单1083

本系列题目来源:CTFSHOW: https://ctf.show/challenges

想搞好代码审计,必须要搞懂其中一些危险函数危险应用,以及过滤不足,

故以 CTF 来练习。

web78~php伪协议

直接payload

web79~Data协议

过滤了 php ,所以不能用 php 开头的伪协议了。

可以使用 data协议·。

  • data:// — 数据(RFC 2397)

自 PHP 5.2.0 起 data:(? RFC 2397)数据流封装器开始有效

受限于 allow_url_fopenNo

受限于 allow_url_includeYes

D9yivt.md.png

payload:

web80~包含日志文件

过滤了 、,也就是 php 伪协议、data 协议。

可以包含日志文件getshell

抓包在 UA 字段换成想要的代码,然后包含访问,就 getshell了。

web81~包含日志文件

payload:

同样包含日志文件getshell,

web82~session文件竞争包含

这里把点过滤了,就不能包含日志文件了。

但是我们可以包含 session 文件。

poc:

DZgA91.md.png

把上述代码保存为html或者php文件后,在上传任意一个文件。抓包,在把cookie改为使得session文件为 ,然后设置开始一直上传。

紧接着抓取,

DZgdEQ.md.png

如图,包含文件,竞争,在没删除前访问到。

DZgogx.md.png

得到,接下来构造上传文件包得到flag.竞争。

DZgXUH.md.png

https://blog.csdn.net/qq_46091464/article/details/108021053

https://www.freebuf.com/vuls/202819.html



web83~session文件竞争包含

这里出现了

说明上一关的利用 *** 已经不能使用了。

等等,。。。这两函数是在刚开始的,在接收函数之前,与上传临时文件也没关系,所以还是可以用上关 *** 的。。。。。。

DZWmuV.md.png

web84~session文件竞争包含

在文件包含之前删掉/tmp下所有文件,但同样存在条件竞争。

web85~session文件竞争包含

同样条件竞争。

web86~session文件竞争包含

define('INCLUDE_PATH','/include/');

set_include_path(INCLUDE);

这样当我们引用 include 中的文件 如 conn.php, *** arty_config.php 时,我们直接可以这样写

include_once('conn.php');

include_once(' *** arty_config.php');

同样条件竞争。

总结一下条件竞争

web87~不同变量死亡绕过

不同变量死亡绕过。

就可以绕过/

正好是正好是6个字节,加2为,4的倍数,正好可以bse64解码。

构造



利用过滤器

构造:

成功回显phpinfo();

还可以使用 过滤器。

构造

虽然

但访问3.php,成功显示phpinfo页面。

可以参考这里

https://yanmie-art.github.io/2020/09/05/%E6%8E%A2%E7%B4%A2php%E4%BC%AA%E5%8D%8F%E8%AE%AE%E4%BB%A5%E5%8F%8A%E6%AD%BB%E4%BA%A1%E7%BB%95%E8%BF%87/

web88~data协议去等号

正则匹配黑名单。

发现过滤的还是比较多,但是没有过滤 : 那我们就可以使用PHP伪协议就是 这里使用的是 data://text/plain;base64,poc 其实和79差不多 只是注意的是编码成base64的时候要去掉 =

实际上就是去掉base64后的=,作为填充使用,不影响结果

web118

kali里面然后分离出一张png图片

这里过滤了几个过滤器,常用的base64肯定不能用了。

因为header 定了,所以他给我们返回的是

D3nnPS.png

这里直接

但奈何页面只返回一个上图页面,本想着另存为,但保存不了。

那么就抓包看看响应包了。

D3uuo6.md.png

直接出flag了。

但是我刚开始是F12抓包的,看到的是 编码后的flag,懵逼了一会,才看出了是base64,但没想到为啥。。。。

D3uJOA.md.png

应该是返回base64编码解码成视频。。。

找到解码直接就是flag.

同样可以使用

详情看这里 https://yanmie-art.github.io/2020/09/05/%E6%8E%A2%E7%B4%A2php%E4%BC%AA%E5%8D%8F%E8%AE%AE%E4%BB%A5%E5%8F%8A%E6%AD%BB%E4%BA%A1%E7%BB%95%E8%BF%87/

web117~不同变量死亡绕过USC

死亡绕过不同变量

这里过滤了 那就是 了。

过滤了不能使用 了,

但是还是可以使用

可以使用

https://www.php.net/manual/en/filters.convert.php

原理:对原有字符串进行某种编码然后再解码,这个过程导致最初的限制exit;去除。

构造

可以看到原先的死亡语句已经变成了

D33EQO.md.png



https://yanmie-art.github.io/2020/09/05/%E6%8E%A2%E7%B4%A2php%E4%BC%AA%E5%8D%8F%E8%AE%AE%E4%BB%A5%E5%8F%8A%E6%AD%BB%E4%BA%A1%E7%BB%95%E8%BF%87/



upload~固定后缀文件包含

题目来源:

https://www.amanctf.com/challenges/detail/id/5.html

打开题目啥也没有,F12,看到有

页面显示

传参

文件包含,但是包含的文件被自动化加上了 后缀.

f12看到还有

访问是一个文件上传功能点。显然这道题考点文件上传+文件包含getshell。

测试这个功能点是可以上传的,但是只能上传jpg,gif等图片后缀格式。

做题做的有突然想到可以先文件包含看看题目源码。

可以看到文件包含匹配、并且长度不能大于70.最后include时还加上指定后缀。-

文件上传限制后缀和MIME类型。并且上传之后先检测最后一个后缀,然后传到目录。

这里做了好久百度可好久,考点是协议。

解法构造一句话php文件,然后压缩,然后改后缀为,然后上传,最后



https://www.cnblogs.com/Byqiyou/p/10187672.html---

相关文章

长沙的肿瘤医院有哪些选择广州复大医院:专家

2020年9月2日下午,暨南大学附属复大肿瘤医院举办头颈肿瘤治疗研讨会。我院牛立志教授与暨南大学附属第一医院王奕鸣教授担任本次大会主席,我院曾宗渊教授、徐炯源教授、暨南大学附属第一医院王亮教授、广东药...

动员大会发言稿(高三百日动员大会教师发言稿)

  动员大会发言稿(高三百日动员大会教师发言稿)同学们,新年好!   今天给大家讲几个故事。   朱熹说:“未觉池塘春草梦,阶前梧叶已秋声。”可以说,人类所有的感叹都关乎时间。大家感叹刚刚放假就开始上...

怎么监控老婆微信聊天不被发现(远程监控老婆微信聊天记录)

怎么监控老婆微信聊天不被发现(远程监控老婆微信聊天记录)

在我们的生活中,信任是最重要的,不管是同事之间,朋友之间还是夫妻之间。人与人之间没有信任就会变得冷漠,夫妻之间没有信任就会破裂。在夫妻生活中,男人往往忙于事业,早出晚归。 怎么监控老婆微信聊天...

字节跳动是怎么赚钱的,为何七年时间能做这么大?

字节跳动是怎么赚钱的,为何七年时间能做这么大? 出售广告位赚取收入。广告是流量变现最常用的手段,之后还可以扩展到电商等领域,赚取平台费用 。 商业模式:卖广告位 字节跳动的商业模式以“短平快”的...

网站关键词布局设置,这样添加关键词排名很容

网站关键词布局设置,这样添加关键词排名很容

搜索引擎对你站点的识别、抓取、收录等流程都为机器操作,因此他们会识别本文或本站的目标关键词,咱们把这些关键词布局好,很容易会把网站排名给坐上来。为何这么说呢,今天咱们来谈谈网站关键词的布局设置。...

吃鸡遇到黑客是什么感觉(吃鸡黑洞是怎么回事)

吃鸡遇到黑客是什么感觉(吃鸡黑洞是怎么回事)

本文导读目录: 1、为什么我们感觉黑客是神秘又可怕的呢? 2、你觉得什么是真正的黑客? 3、吃鸡开挂的,就不怕家里人出事吗 4、黑客一般是什么样的 5、身边有个黑客朋友是种怎样的体验呢...