SQL注入

作者: cws | 来源:发表于2016-07-12 18:05 被阅读126次

    含义

    sql注入是将代码插入(拼接)到应用(用户)的输入参数中,
    之后再将这些参数传递给后台的SQL服务器加以解析并执行的攻击,
    总结起来就是攻击者将恶意代码拼接到sql语句并加以执行从而得到数据的过程。
    

    成因

    SQl语句未对用户参数进行严格过滤
    

    可引发注入的地方

    其实只要是客户端可控、参数值代入数据库查询的地方都可能存在注入
    常见的如下,按出现频率排序:
    1. GET
    2. POST
    3. X-Forwarded-For
    4. Cooke
    5. User-Agent
    

    注入分类

    根据语法(较权威):
    1. 可联合查询注入:
        只要页面有显示位即可使用,且注入速度很快
    2. 报错型注入:
        没有显示位但用echo "mysql_error()"输出了错误信息,速度很快,但是语句较复杂
    3. 布尔型注入:
        一次一个字节,速度慢,但只要有注入就能用
    4. 基于时间延迟注入:
        超级慢,比布尔型注入慢几倍,但是通用性较强
    5. 可多语句查询:
        只有SQL Server可以使用
    
    根据类型:
    1. 整形
    2. 字符串型
    3. 搜索型
    

    查找注入点

    在URL中:
    1. and 1=1/and 1=2(整型)
    2. 随即输入(整型)
    3. -1/+1 回显上下页面(整型)
    4. 单引号(字符型/整型)
    5. and sleep(5) (判断页面返回时间)
    
    在http头:
    1. X-Forwarded-For
    2. Cookie
    3. User-Agent
    

    相关文章

      网友评论

      • 783b79ab341f:在http头:
        1. X-Forwarded-For
        2. Cookie
        3. User-Agent
        接口中有传cookie和User-Agent的这种类型的接口,一般测试进行安全测试?
        cws:这个也是需要进行测试的,比如sqlmap的level3就会测试header,测试方法和get及post是一样的

      本文标题:SQL注入

      本文链接:https://www.haomeiwen.com/subject/hgcsjttx.html