zoukankan      html  css  js  c++  java
  • SQL注入测试的测试点

    1.输入域的值为数字型,用1=1,1=2

    若满足条件,则存在SQL注入漏洞,程序没有对提交的整型参数的合法性做过滤或判断

    2.输入域的值为字符型,用 ’1=1’, ’1=2’

    若满足条件,则存在SQL注入漏洞,程序没有对提交的字符型参数的合法性做过滤或判断

    3.输入域中的值为搜索型,用’and [查询条件] and ‘%’=’%

    若满足条件,则存在SQL注入漏洞,程序没有对提交的查询的合法性做过滤或判断

    4.UNION查询语句

    利用Union可以连接查询,从而从其他表中得到信息

    5.大小写排查

    程序员对大小写的过滤不充分时,会忽视大小写混合的情况,容易存在漏洞

    6.UNICODE字符集检查

    UNICODE字符集转化的输入,会把+号转为%2B,把%号转化为%25等,容易忽略过滤

    7.ASCII码检查

    把输入的字符用ASCII码代替,如a=char(97),容易忽略过滤

    8.;号或号检查

    分号;SQLServer中表示隔开前后两句语句,--表示后面的语句为注释,容易忽略过滤

    9.利用系统表

    通过查询数据库的系统表名,可判断具体用的数据库类型

    10.利用数据库服务器的系统变量user

    可以得到数据库名,数据库的用户名,从而进行进一步攻击

    11.利用相关函数

    若字符是中文的,比如where name=’用户,可以用where name=nchar(29992)+nchar(25143)代替。

    12.界面输入框中是否对SQL敏感字符进行了屏蔽

    "exec" ,"xp_","sp_","declare","Union","cmd","+","//","..",";","'","--","%" 等命令关键字

    13.是否对SQL脚本语法出错信息进行了屏蔽

    有些SQL注入的目的就是为了看到报错的SQL命令,通过分析这些SQL命令,获取关键的数据库名,表名以及字段名等信息

    欢迎大家批评指正,指出问题,谢谢!

  • 相关阅读:
    Qt 串口通信 高速发送出错的解决方法总结
    Qt VS MFC
    从char到QChar
    QObject 的拷贝构造和赋值操作
    qt 元对象系统
    QT Embedded二三事之QObject的元对象
    QTableWidget与QTableView的区别
    arcengine,深入理解游标Cursors,实现数据的快速查找,插入,删除,更新
    利用IIdentify接口实现点选和矩形选择要素
    IWorkSpace与IWorkSpaceFactory与IWorkSpaceEdit
  • 原文地址:https://www.cnblogs.com/yhcTACK/p/15404725.html
Copyright © 2011-2022 走看看