SQL注入测试
SQL注入可以出现在任何系统或用户接受数据输入的前端应用中,这些应用之后被用于访问数据库服务器。 HTTP定义了很多种客户端可以发送给服务器的操作,但是这里只关注与SQL注入相关的两种方法:GET和POST。
GET请求: GET请求是一种请求服务器的HTTP方法。使用该方法时,信息显示在URL中。点击一个链接时,一般会使用该方法。Web浏览器创建GET请求,发送给Web服务器然后再浏览器中呈现结果。GET请求对用户是透明地。 POST请求: POST是一种用于向Web服务器发送信息的HTTP方法。服务器执行的操作则取决于目标URL。在浏览器中填写表单并点击Submit按钮时通常使用该方法。浏览器会完成所有工作。
(2)修改输入值以包含危险的字符串 (3)检测服务器返回的异常
1.是否所有Web应用均易受到SQL注入攻击? 答:SQL注入漏洞只会出现在访问数据库的应用中。如果应用未连接任何数据库,那么便不会受到SQL注入攻击。即使应用连接了数据库,也并不代表就易受到攻击。 2.当我向Web应用的搜索功能插入一个单引号时,发现了一个奇怪的现象:我并没有收到任何错误,该应用是否可以被利用? 答:这要具体问题具体分析。如果事实证明这是一个SQL注入漏洞,那么该应用可以被利用。即使它不返回任何数据库错误,也可以利用。构造有效的SQL语句的推理需要对SQL语句的熟悉以及一点点灵活的思路,但只要多刷刷CTF,多练练靶场,总归是不错的。 3.SQL注入和SQL盲注有何差别? 答:在常规SQL注入中,应用返回数据库中的数据并呈现出来。而在SQL盲注中,只能获取分别与注入中的真、假条件相对应的两个不同相应。 4.为什么需要将SQL注入盲注利用自动化,而不需要将常规化SQL注入自动化? 答:利用SQL盲注漏洞需要向远程Web服务器发送5~6个请求来找到每个字符。为显示数据库服务器的完整版信息,可能要发送数百个请求,使用手动方法的话会极其费力且难以实施。 5.什么是引发SQL注入漏洞的主要原因? 答:Web应用未对用户提供的数据进行充分审查或未对输出进行编码是产生问题的主要原因,此外,攻击者还可以利用其他问题,比如糟糕的设计或不良的编码实践。如果缺少输入审查,那么这些问题就都可以被利用。 6.我已经检测并确认了一个SQL盲注漏洞,当常用的漏洞利用工具好像不起作用。 答:SQL盲注每次的情况会略有不同,有时现有的工具无法利用每个漏洞。要确认该漏洞可以手动证实且工具已正确配置。如果现有的工具无法利用每个漏洞,可以定制化工具,或者添加辅助插件,修改工具源码已达到正确检测的目的。