• sql注入练习,sqli-labs writeup


    一、Less-1

    1.判断是否存在注入

     

    URL中输入“?id=1”,发现回显有变化,说明存在注入;

    2.判断闭合字符,注释后面的内容

    输入“   ?id=1'  ”,回显为  "1" limit 0,1,其中1’是我们输入的内容,这时就变成了 ’ ’ 1‘   limit 0,1‘(蓝色字体为我们输入的内容),原单引号是闭合的(闭合是指,符号成对出现)

    之前是第一个单引号与最后的单引号闭合,第二个单引号与第四个单引号闭合。现在我们输入的内容始终是在两个单引号之间,作为字符串进行处理,所以需要将第二个单引号进行闭合,就在1后面输入一个单引号,并将后面的内容进行注释,输入--+或者%23

    这时回显内容正常

    3.判断列数

    使用order by(排序),来判断有几列数据,

    随便写 先写order by 5,发现回显错误,说明列数是小于5的。

    依次试4和3,4的回显结果与5相同, 发现到3时回显正确,说明列数为3

    4.判断显示位(需要将order by删除)

    使用union联合查询判断显示位。

    首先先使union前面的语句为假,这样就只会显示union后面的查询结果,输入 and 1=2(因为1=2恒为假),或者 id=-1'.

    接着输入union后面的部分,因为union前后查询的字段数量是一样的,所以后面select就需要输入3个字段,结果如下:

    发现,只显示2,3列的数据

    5.爆数据库

    使用l连接函数group_concat(),此函数是将括号内字段的字段值以逗号作为分隔符打印在一行。

    MySQL自带四个库,其中information_schema库下存放着数据库对象相关概要信息,比如字符集、引擎、数据库、数据表、视图、列、权限等,其中有重要的三个表,分别是:

    (1)schemata表,存放着MySQL数据库下所有库的信息,show databases命令的结果就是来自于这个表。此表有五列,分别是:

    catalog_name、schema_name、default_character_set_name、default_collation_name、sql_path,其中schema_name列存储的就是MySQL数据库下所有库的名字(爆数据库名用到此表);

    (2)tables表,此表提供了关于数据库中的表的信息(包括视图),重要的两个列,一是table_schema:表所属数据库的名字,二是table_name:表的名字(爆表名就要用到此表)。

    (3)columns表,此表提供了表中列的信息,详细表述了某张表的所有列以及每个列的信息,重要的三个列,一是table_schema:字段所属数据库的名字,二是table_name:字段所属数据表的名字,三是column_name:字段的名字(用此表爆字段名)。

    所以爆数据库的语句是:

    union select 1,group_concat(schema_name),3 from information_schema

    爆出所有数据库名称

    查询我们当前所在的数据库名,我们就用此数据库来爆其他信息。

    使用database()函数,查询当前数据库名称

    6、爆表名

    union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'

    发现这些表中有一个users表,这个表一般存放着用户的一些敏感信息,下一步我们就爆此表的字段。

    7、爆字段

     union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'

    发现,这些字段中有username和password这两个字段,也就是用户名和密码,我们现在就爆这个字段的数据内容。

    8、爆数据

    根据以上操作,我们知道了数据库是security,表示users,字段是username及password,所以我们现在就来包用户名和密码。

    知道用户名和密码就可以进行登录,如果是管理员用户名和密码就更好了。

    OK,结束!

  • 相关阅读:
    jQuery插件 -- Form表单插件jquery.form.js
    Ajax发送GET、POST请求和响应XML数据案例
    Ajax知识点复习
    Tomcat配置连接池的java实现
    dbcp数据库连接池的java实现
    C3P0数据库连接池的java实现
    推荐几款基于Bootstrap的响应式后台管理模板
    Java复习第四天
    Java复习第三天
    Java复习第二天
  • 原文地址:https://www.cnblogs.com/sunshineyan/p/10507625.html
Copyright © 2020-2023  润新知