首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在url上注射变送器

在url上注射变送器
EN

Security用户
提问于 2012-04-28 17:01:13
回答 1查看 2.1K关注 0票数 7

假设有一个程序通过GET向服务器发送一些数据:

http://server.com/gateway?value1=abc&value3=def

然后服务器进一步发送这些值,添加value2:(python )

代码语言:javascript
复制
SECURED_VALUE = "safe"
"http://externalAPI.com/?value1={0}&value2={1}&value3={2}".format ( get['value1'], SECURED_VALUE, get['value2'] )

我的观点是,我是否可以以如下方式向后一个请求注入另一个属性:

http://server.com/gateway?value1=abc&&value2=hacked&value3=def&&value2=hacked

因此,服务器--> API请求看起来如下:

http://externalAPI.com/?value1=abc&value2=hacked&value2=safe&value3=def&value2=hacked

外部API很可能只读取重复键的最后或第一次出现。

所以我有两个问题,main,如果这样的攻击是可能的,其中一个应该保护他的应用程序不受攻击。其次,如何实际做到这一点,不仅是通过GET方法,也可能是通过POST,或者通过修改JSON编码的字符串。用符号或分号对JSON进行解码会给出一个错误,将变送符放到POST方法中,其行为与GET方法中的行为相同。

我问这个问题,是因为我发现了一些安全问题,我目前正在编写一个成功的黑客尝试的例子,以防服务器开发人员不删除符号和其他风险字符。我不想变成一个愚蠢的家伙,他不知道这样的注射是不能进行的,而且只是在浪费管理员的时间,所以我想先问你。

第三,迷你问题,你知道如何在,python,webapp2框架中保护自己不受注入的影响吗?

EN

回答 1

Security用户

回答已采纳

发布于 2012-04-28 21:44:05

概述。是。你是正确的。注意到这一点很好。

详细信息。这基本上是HTTP参数污染漏洞的一个实例。这基本上是一个注入漏洞(类似于XSS,只不过它是注入HTTP参数,而不是注入HTML)。

防御。为了防止这种情况,我建议你做两件事:

  1. 清理参数值。构建一个白名单,其中包含预期将出现在查询中且在此上下文中也已知是安全的字符(确保它不包括&?=#%),并删除白名单中未包含的参数值中的所有内容。
  2. URL在将参数值插入到新查询之前对它们进行编码。

相关研究。另见以下研究论文:

  • 参数污染漏洞的自动发现inWeb应用程序。马尔科·巴尔杜齐,卡门·托拉诺·吉门茨,达维德·巴尔扎罗蒂,恩京·基尔达。国家统计局,2011年。(摘要)
票数 6
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/14286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档