A1:2017年–注射剂(第2部分)

在上一篇文章中,我建议读者了解SQL查询语言的详细结构以及HTTP协议的工作方式。 但这通常不是这种情况。 我立刻想起了我最喜欢的一本书,罗伯·布顿顿(Rob Brotherton)所描述的故事。 它描述了以下实验。 心理学家丽贝卡·劳森(Rebecca Lawson)向一组对象询问他们是否曾经骑过自行车。 多数回答是。 她进一步询问他们是否知道自行车的工作方式。 肯定的答案已经很少了,但仍然是绝大多数。 然后她提出了以下图像,并要求对其进行补充,以使这辆自行车可以骑行。


然后最有趣的事情发生了-超过一半的人无法做到这一点。 这个看似简单的任务表明,大多数人根本无法想象自行车是如何工作的。 但是最有趣的是,他们不了解自己不知道这一点,而只是在必须证明这一点的时候才开始了解这一点。

使用HTTP和SQL,会发生相同的事情。 至少在其教育机构的实验室实验室中,有90%的IT专家编写了SQL查询,人们每天以用户的身份使用HTTP,并且不时由相同的IT专家来配置实际使用HTTP的Web服务器。 但是,当您必须回答特定问题时,经常会发生昏迷。


信息安全分析师必须详细了解该技术,并了解其细微差别。 如果我们不知道这种技术应该如何工作,那么我们如何找出问题所在?

也是“注射”


我提到输入的验证应在服务器上进行,而不是在客户端上进行。 有时,可能会遇到单个元素处于非活动状态的输入形式。 并且假定它们将在满足某些条件后变为活动状态。 或者,例如,用户名输入字段的长度为7个字符,因此限制了用户名的最大长度。 所有这些都是非常不好的做法,这就是为什么:已接收到的页面上的元素可以在发送之前任意编辑,而无需任何特殊的技术手段。 在OWASP Mutillidae II中,可以在“其他”>“客户端”安全“控件”示例中看到。


这是您需要在其中输入随机数的表格,这次是2056694312。这里的“难题”在于这些字段有局限性。 有一个“只读”字段,不能替换数字42,有一个太短的“短文本框”字段,我们的数字根本不能容纳,还有一个禁用的“禁用文本框”字段,处于非活动状态,依此类推。

实际上,任务很简单地解决了。 在浏览器中(以Mozilla Firefox为例),转到开发者控制台(F12),然后开始检查表单元素。

例如,一个只读字段如下所示:

<input HTMLandXSSInjectionPoint="1" type="text" name="readonly_textbox" id="id_readonly_textbox" size="15" maxlength="15" required="required" autofocus="autofocus" readonly="readonly" value="42" /> 

删除readonly =“ readonly”并声明:该表格可写,我们可以输入我们的电话号码。
我们的价值根本不适合下一个领域,让我们看一下这个元素:

 <input HTMLandXSSInjectionPoint="1" type="text" name="short_textbox" id="id_short_textbox" size="3" maxlength="3" required="required" /> 

在这里,我们注意到maxlength =“ 3”。 将3替换为333,现在我们可以输入数字了,不用担心它不合适。

顺便说一句,这不仅仅涉及输入字段。 同样,您可以更改任何元素,例如复选框。 页面代码如下所示:

 <input type="checkbox" name="checkbox" id="id_checkbox" value="2056694312" required="required" disabled="disabled" /> 

这很简单,我们用数字替换值,现在当用户单击按钮时将发送它。


总体而言,如果您知道HTML的结构,那么就很容易更正此表单,以便在其中输入所有必要的数据。 只需重新阅读有关自行车综合症的部分即可)

不只是SQL


注入并不总是与数据库有关。 总的来说,从任何不过滤传入数据的形式中,您都可以获得一些其他信息。 在示例“应用程序日志注入”>“ DNS查找”中,有一种用于DNS查询的便捷形式:


实际上,如果您在此处输入地址,例如google.com,我们将获得所有必要的信息:


但是,漏洞在于,除了第一个有效命令之外,我们还可以输入其他内容。 例如,指定:

 google.com && dir 

现在命令的输出更加有趣:


我们向DNS服务器发出了一个请求,但此外,我们执行了dir命令并查看了站点文件夹中的内容。 组合不同的命令,在Web服务器的硬盘驱动器上四处逛逛,寻找不好的地方并不难。

下次,我们将分析更多示例,并了解如何使您的工作自动化。

此链接上阅读作者的博客。

Source: https://habr.com/ru/post/zh-CN424205/


All Articles