[16:42:45] [INFO] testing connection to the target URL sqlmap got a 302 redirect to 'http://10.99.10.20:8080/error.html?aspxerrorpath=/default.aspx'. Do you want to follow? [Y/n]
对sqlmap来说,这个情况看起来并没有什么希望。让我们继续看看会发生什么。
1 2 3 4
[16:45:57] [INFO] testing 'Microsoft SQL Server/Sybase time-based blind (IF)' [16:45:58] [INFO] testing 'Oracle AND time-based blind' [16:45:58] [INFO] testing 'Generic UNION query (NULL) - 1 to 10 columns' [16:45:58] [WARNING] using unescaped version of the test because of zero knowledge of the back-end DBMS. You can try to explicitly set it with option '--dbms'
Burp Suite中的macro是在Burp中代理的请求之前被发送到服务器端的一系列请求。一旦macro请求被执行,最后一个macro响应中的一系列参数能够被接下来的请求所携带。这就叫做macro。 首先我们要做的就是标记我们想要使用的一系列请求。在这个例子中只有一个请求:一个发往服务器的Get请求。然而Macro可以用来执行复杂的操作。比如登陆到一个应用然后取出cookies。在Burp Suite中点击“Project options”标签然后点击其中的“Sessions”子标签。 滚动到Macro部分然后点击add。 两个对话框将会弹出。第一个是macro编辑器,第二个是macro记录器。为了确定我们将要执行的是哪些请求,我们需要“记录”我们想要生成的macro。可以通过两步实现它:现在我们可以执行一些动作作为macro的一部分(例如:浏览登陆页面,发送特定的Get请求等等)。然后在列表中选择它们。或者我们可以直接从代理历史中选择。看来我们只是寻找一个请求,我们已经做了,我们将使用第二个选项。 一旦我们选中期望的请求,就点击OK键,然后我们就进入到macro编辑器。 从这里开始我们需要对已经被拦截的请求做一些小改动。对于高亮的请求,我们点击“Configure item”。“Configure Macro itme”对话框将会弹出。然后我们点击“Custom parameter location in response”部分的add按钮。 然后我们需要在响应中定位参数。高亮我们想要提取的值然后为参数命名以便于在macro完成的时候它能够被最后的请求带上。 “Define start and end”部分将被自动填充当我们在响应中高亮需要的值。其他的就按照默认值就可以了。点击OK直到关闭所有对话框。 现在我们生成了自己的macro。但是我们仍然需要实现一个会话処理规则(session handling rule)使macro在需要的时候执行。在Session标签中找到“Session Handling Rules”部分然后点击add按钮。 当对话框弹出时点击在“Rule Actions”下面的add按钮,在下拉菜单中选择“Run a Macro”。 然后“Session Handling Action Editor”就会出现。在这里我们选择自己的macro。 选择“Update only the following parameters”然后将我们的参数添加到这个列表中。如果我们想要基于macro修改cookies,我们也可以将其添加到这里。在这个例子中并没有cookies被设置。 点击OK关闭对话框然后点击Session Handling Rule Editor中的“Scope”标签。 在这里我们将要定义受规则影响的请求的范围。在“Tools Scope”中代理并没有被默认选中(如果没有设置好这会影响到每一个经过Burp的请求)。为了在sqlmap中使用这个规则,我们需要使这个规则在代理中启用。为了限制使用范围我们使用“Use suite scope”选项将其设置为只在测试站点使用。最后,我们限制“Parameter Scope”只影响包含token参数的请求,这是我们唯一要修改的。最后点击OK关闭对话框。 这些就是我们需要为sqlmap设置的所有选项。现在当sqlmap的请求经过Burp代理时,Burp就会先发送一个请求到服务器然后用从中得到的token参数替换sqlmap的post请求中的参数值。 N.B:Burp不会在代理历史中展示被修改的请求。如果你认为macro并未正确的工作。你需要在Session标签Project选项中打开sessin tracer。这个能够用来一步一步的移动每个请求然后你就可以观察请求中的变化了。 一旦macro被启动sqlmap就能够正确的在我们的网站中检测出SQL注入然后利用它。
1 2 3 4 5 6 7 8
[20:38:09] [INFO] POST parameter 'txtQuery' appears to be 'Microsoft SQL Server/Sybase stacked queries (comment)' injectable [20:38:09] [INFO] testing 'Microsoft SQL Server/Sybase time-based blind (IF)' [20:38:09] [INFO] testing 'Microsoft SQL Server/Sybase time-based blind (IF - comment)' [20:38:19] [INFO] POST parameter 'txtQuery' appears to be 'Microsoft SQL Server/Sybase time-based blind (IF - comment)' injectable [20:38:19] [INFO] testing 'Generic UNION query (NULL) - 1 to 20 columns' [20:38:19] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other (potential) technique found [20:38:19] [INFO] 'ORDER BY' technique appears to be usable. This should reduce the timeneeded to find the right number of query columns. Automatically extending the range forcurrent UNION query injection technique test [20:38:19] [INFO] target URL appears to have 1 column in query
[20:41:46] [INFO] fetching database users [20:41:46] [WARNING] reflective value(s) found and filtering out [20:41:46] [INFO] the SQL query used returns 2 entries [20:41:46] [INFO] retrieved: animals [20:41:47] [INFO] retrieved: sa database management system users [2]: