zoukankan      html  css  js  c++  java
  • 【合天网安实验室】SQL注入入门一

    作者:tianjianbo@126.com

    时间:2015年1月17日

    实验平台:合天网安实验室.Web应用安全.SQL注入实验一

    实验环境:Apache+PHP+Mysql

    实验原理:

    1. SQL注入是一种将SQL代码插入或添加到应用的输入参数中的攻击,之后再将这些参数传递给后台的SQL服务器加以解析并执行。
    2. 传统的手工

    (1)     判断是否有注入点

    方法一:

    在url后面加’ 从而让SQL语句出错,那么页面就会提示出错信息。这时候就可以判断从这里存在注入。当然还有可能加了’,和没加是一样的,这也有可能是注入。因为当把错误提示关闭时,它是不会在页面显示的。

    方法二:

    构造 and 1 = 1 和 and 1 = 2

    如果两个页面显示不一样,那么就说明存在注入了。

    (2)     理解字段数目

    方法:

    order by 数字K   /**意思是根据第K个字段的大小来排序, 比如如果只有3个字段, K = 4, 那么就会报错。所以通过这个可以知道有多少字段*/

    (3)     使用联合查询获取信息

    方法:

          使用union语句

    实验步骤:

    1. 热身运动不设防:

    关键代码:

    目标:尝试进行sql注入,目标为得到数据库中的用户名与密码。

    判断是否存在注入:

    两次显示不一样,存在注入。

    猜测字段数目:

    其中,Mysql 的注释符有以下几种:

    目的是把后面的’ 注释掉

    所以可知有5个字段。

    猜字段内容:

    注意:

    (1)        union 两边的select 语句必须具有相同数量的列,列也必须拥有相似的数据类型,同时,每条select语句中列的顺序必须相同。

    (2)        %23 是 # 的16位url编码。

  • 相关阅读:
    shell脚本while read line的使用
    shell 一次性赋值多个变量
    Docker Volume
    nginx反向代理与负载均衡
    lua中 table.getn(t) 、#t、 table.maxn(t) 这三个什么区别?
    pv绑定pvc
    使用brew services管理服务
    Kubernetes中强制删除Pod、namespace
    shell 中的${},##, %% , :- ,:+, ? 的使用
    petalinux中fsbl源码
  • 原文地址:https://www.cnblogs.com/anonymous-tian/p/4235156.html
Copyright © 2011-2022 走看看