BUGKU CTF (各种绕过)
打开题目 看到链接 首先 像这种给了我们完整代码 并且规规矩矩的 我们就要认真分析一下
所以 开启码农 模式 (虽然自己的php 学的蓝的无法接受 可还是不妨碍我们认真的态度 🤭)
这里注意$_GET[‘id’] = urldecode($_GET[‘id’]) $_GET本身会进行一次url解码,这里相当于进行了两次url解码
然后 sha1( GET[ ′uname ′ ]) === sha1(_POST[‘passwd’]):需要的是 uname和passwd的sha1值相同,并且uname和passwd值不相同 (似乎有点MD5函数漏洞的味道 但是不然)
那么利用sha1()不能处理数组的漏洞,如果传入的值为数组,则sha1会返回NULL,因此只需让uname和passwd都为数组,等式成为 N===N
id值为margin,不需要进行url编码,直接赋值为margin
我们利用 HTTP接口测试工具 进行构造 payload
发送请求 得到flag 需要提醒 参数值不能是 1