[HCTF 2018]WarmUp1

[HCTF 2018]WarmUp1

源码发现source.php页面

image-20241104214328003

访问页面发现代码审计

image-20241104214416342

发现页面hint.php,访问发现

image-20241104214824109

根据source.php代码审计,发现其逻辑为:

file 不空、为字符串且经过emmm类的checkFile函数过滤,就执行文件包含,否则就输出滑稽图片,而需要被包含的文件就是hint.php提示的ffffllllaaaagggg。

函数解释:
mb_substr() 函数返回字符串的一部分。substr() 函数,它只针对英文字符,如果要分割的中文文字则需要使用mb_substr()
ps:如果 start 参数是负数且 length 小于或等于 start,则 length 为 0

mb_strpos() 查找字符串在另一个字符串中首次出现的位置

in_array() 函数搜索数组中是否存在指定的值
ps:如果 search 参数是字符串且 type 参数被设置为 TRUE,则搜索区分大小写。

urldecode():解码已编码的 URL 字符串

所以绕过思路为:

?file=source.php?../../../../../ffffllllaaaagggg

坑点:在此曾多次尝试../ffffllllaaaagggg均为找到,直到第五层,也就是../../../../../ffffllllaaaagggg才出现flag

image-20241104215409415

posted @ 2024-11-08 18:46  TazmiDev  阅读(83)  评论(0)    收藏  举报