zoukankan      html  css  js  c++  java
  • php后台验证两种方式绕过

    php后台验证两种方式绕过

    前言

    • 环境:buuctf中[GXYCTF2019]BabySQli1
    • 知识点:两种验证方式,密码绕过
    • 参考:博客

    做题

    sql注入,fuzz过滤了(,),=,or

    然后就琢磨着都过滤了(),函数都不能用,还怎么进行sql注入

    尝试着成功登录进去

    1'||1 like 1# !!!,没有成功登进去,这说明后台查询方式不是类似

    where user='' and password=''

    这题给了源码

    用户登录两种业务查询方式

    一种是直接对用户输入的账号名和密码进行查询


    另一种是针对用户输入的账号名进行查询对应的密码,再和用户输入的密码做比较


    根据题目的源码,显然是第二种

    要绕过第二种可以利用union select

    构造name=mi'union select 1,'admin','b6d767d2f8ed5d21a44b0e5886680cb9'#&pw=22 成功绕过

    拿到flag

    部分源码

    if(preg_match("/(|)|=|or/", $name)){
    	die("do not hack me!");
    }
    else{
    	if (!$result) {
    		printf("Error: %s
    ", mysqli_error($con));
    		exit();
    	}
    	else{
    		// echo '<pre>';
    		$arr = mysqli_fetch_row($result);
    		// print_r($arr);
    		if($arr[1] == "admin"){
    			if(md5($password) == $arr[2]){
    				echo $flag;
    			}
    			else{
    				die("wrong pass!");
    			}
    		}
    		else{
    			die("wrong user!");
    		}
    	}
    }
    
  • 相关阅读:
    struts2国际化
    Struts2运行机制
    HelloStruts2
    iOS流布局UICollectionView系列七——三维中的球型布局
    iOS- UITextView与键盘回收与键盘遮挡输入框
    web 网页截取图片
    iOS 平台如何使用 TestFlight 进行 Beta 测试
    Ubuntu shortcuts
    ubuntu study
    ios 即时通讯 xmpp
  • 原文地址:https://www.cnblogs.com/NineOne/p/14044572.html
Copyright © 2011-2022 走看看