如何发送"安全:低"使用Jsoup将DVWA作为cookie参数?

时间:2017-06-27 00:22:53

标签: java session cookies jsoup sql-injection

我正在尝试使用带有手动插入的cookie的jsoup发送请求,以便检测SQL注入漏洞。 问题是只有一个cookie有效,我不明白为什么。 我首先手动验证自己并获取cookie。例如:

PHPSESSID : b74302c3c6af62d23047a450a40cbf5a
security : high

我收到cookies后,我使用相同的PHPSESSID发送我的请求(从浏览器http://localhost:8090/dvwa/vulnerabilities/sqli/?id=&提交=提交#)看起来像这样;但安全性: 即可。目的是强制你的SQL语法中出现错误"响应,表明SQL注入漏洞。问题是PHPSESSID收到良好(因为我检索dvwa / vulnerabilities / sqli页面而不是登录页面,因此它在认证后将PHPSESSID识别为有效)但是" security:low"好像不行。我无法找到问题。

初始连接的jsoup代码,以便我可以解析页面上的表单,如下所示。我手动提供cookie。

Connection  connection = Jsoup.connect(urlDTO.getUrl())
                        .userAgent(StringConstants.USER_AGENT)
                        .cookies(cookies)//Map<String,String>
                        .referrer(StringConstants.REFERRER);

Document htmlDocument = connection.get();

要发送表单,请使用以下代码:

Connection  connection = Jsoup.connect(formDTO.getUrl())
                        .userAgent(StringConstants.USER_AGENT)
                        .cookies(cookies)
                        .data(listToMap(formDTO.getInputList()))// id = ' , Submit = Submit
                        .method(getMethod(formDTO.getMethod()))
                        .referrer(StringConstants.REFERRER);

Connection.Response res = connection.execute();
Document doc = res.parse();

有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

经过多次调试后,我资助了问题的根源和奇怪的行为。 cookies / headers / url没有问题,问题发生在.method().method()的默认值为Method.GET。但由于我发送动态请求,我必须动态构建它。为此,我正在解析表单以获取方法,然后添加连接构造中所需的类型。

if (method.equals("post")) {
            return Method.POST;
        }
if (method.equals("get")) {
            return Method.GET;
        }
return Method.POST;

直到现在这个工作还是令人惊讶的是,当发送错误的方法时,它仍然发送了几乎有效的响应,所以我忽略了它。

这是修复。

if (method.toLowerCase().equals("post")) {
            return Method.POST;
        }
if (method.toLowerCase().equals("get")) {
            return Method.GET;
        }
return Method.GET;

这是我的错误,并没有传递Jsoup问题,但由于我忽略了其他人可能也是如此,这是一个提醒。