提问人:Marvin 提问时间:1/16/2018 最后编辑:TarangPMarvin 更新时间:1/16/2018 访问量:220
乘法运算符会导致 SQL 注入吗?
May multiplication operator cause SQL injection?
问:
我正在使用acunetix对传入的网站执行部分安全审计。该应用程序主要使用PHP和MySql开发。
所有用户输入都被转义,但一些输入(主要是 url 参数)部分未转义:我仍然可以在字符串参数中发送“*”运算符。 Acunetix 会因此触发警报:
攻击细节
URL 编码的 POST 输入 A 设置为 417*1*1*1*1*1*1*1*
执行的测试:
648' => ERROR
648'' => ERROR
883*1*1* => ERROR
545*1*1*1*1 => OK
965*1*1*1*1* => ERROR
880*1*1*1*1*1*1 => OK
417*1*1*1*1*1*1* => ERROR
我不明白为什么它被认为是一个漏洞:目的是表明我的输入没有被充分逃脱(无论该漏洞多么实际可利用),还是这里存在真正的危险?万一有:你如何利用它?
答:
0赞
Philipp Maurer
1/16/2018
#1
通过提交星号运算符,测试提供程序仅检查符号的计算方式是字符串还是运算符。如果它因语法错误的输入而抛出错误,则可以得出结论,它没有被转义。 如果提交了一些易受攻击的代码,那么它很可能也无法逃脱,从而损害您的基础设施。
提交星群本身被认为是无害的。无论如何,这只是一个测试,看看是否存在漏洞,提供者不想提交实际损害或破坏测试环境的值。
评论
0赞
Marvin
1/16/2018
我知道您提供的信息越少越好。我担心存在实际风险,但我理解 acunetix 警报。谢谢你的解释
评论
*
是一个运算符,每侧使用两个操作数来执行任何算术运算。因此,如果您在最后使用,那么它总是会给您一个错误......*