0x00简介
最近肺炎爆发,被迫宅在家。闲来无事,做了道web题,正巧碰到了盲点,记录一下。
题目允许用户输入一个图片url,并通过curl发起请求返回图片给用户。
源码如下:
1 |
|
最近肺炎爆发,被迫宅在家。闲来无事,做了道web题,正巧碰到了盲点,记录一下。
题目允许用户输入一个图片url,并通过curl发起请求返回图片给用户。
源码如下:
1 | <?php |
一条源码审计,访问source.php后可查看源码。查看源码可发现后端将传进来的file参数进行修改,然后查看是否属于白名单,但通过后require的却还是原值。所以要做的就是绕过验证。
分析源码
1 | $_page = mb_substr( |
显然,构造一个hint.php?*
类似这样的payload即可绕过。
查看php文档中对include函数有如下解释
如果定义了路径——不管是绝对路径(在 Windows 下以盘符或者 \ 开头,在 Unix/Linux 下以 / 开头)还是当前目录的相对路径(以 . 或者 .. 开头)——include_path 都会被完全忽略。例如一个文件以 ../ 开头,则解析器会在当前目录的父目录下寻找该文件。
即当file=hint.php?/*
时,它会将这个文件名当作文件路径,然后忽略其。至此,便可构造file=hint.php?/../../../../../ffffllllaaaagggg
拿到payload
一直以为GoogleHack不会运用到ctf中,只有日常渗透时会用。而最近的几场线上赛,有很多题目魔改之前的赛题。在线上赛题目较多的情况下,遇到这种题目应尽量用最短的时间做出来,而搜索是有技巧的,像我之前一阵乱搜,太浪费时间精力了。所以特写此篇博客学习下。
PS:赛后有题做不出来问大师傅,大师傅说网上随便搜搜就出来了,而我根本搜不到。哇的哭出来了。
CVE-2019-11043 是一个远程代码执行漏洞,使用某些特定配置的 Nginx + PHP-FPM 的服务器存在漏洞,可允许攻击者远程执行代码。
向Nginx + PHP-FPM
的服务器 URL发送 %0a
时,服务器返回异常。
该漏洞需要在nginx.conf
中进行特定配置才能触发。具体配置如下:
1 | location ~ [^/]\.php(/|$) { |
这个比赛是帮曹师傅代打的,曹师傅去xctf总决赛了。orz,曹师傅太强了。
总体感觉这个比赛难度正巧是我的水平,做起来很舒服,又不太难,又不无脑。但是由于比赛时间紧,好多题目直接pass,所以有几道题目记不太清了。
nslookup domain [dns-server]
查询域名的A记录
nslookup -qt=type domain [dns-server]
其中,type可以是以下这些类型:
nslookup -d [其他参数] domain [dns-server]
查询域名缓存
php反序列化漏洞,又叫php对象注入漏洞。
php中两个函数serialze()和unserialize()。
serialize()函数是将传入的参数转换为字符串,以便方便传递和使用。
测试代码:
1 | <?php |
太菜了,树的遍历忘的一干二净。上机时脑子空荡荡,知识在垃圾堆。特别写一篇博客理一下。
三种遍历方式中算法最为简单的一个,一直向左遍历,将遍历到的点输出,如果有右节点,就进入右节点,开始新一轮循环。
1 | void preoder(BT* T) |
在整理2019SUCTF的赛题时,其中有一题代码审计,限制字符、字符串长度,让你构造一个webshell。
1 | <?php |
自己太菜,根本想不到骚操作,一顿搜索、查看题解之后有了此篇总结。