首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试SQL注入查询

如何测试SQL注入查询
EN

Security用户
提问于 2012-09-30 21:54:50
回答 3查看 2.8K关注 0票数 4

在像这样的URL:example.com/videos.php?id='34中测试SQL注入时,我们使用如下字符序列:

代码语言:javascript
复制
'
"
""""
/*/
-' --

还有很多其他的..。

如何测试这样的链接以获得SQL注入:

代码语言:javascript
复制
example.com/articles/another-perspective-on-data
example.com/category/tutorials/cooking/
EN

回答 3

Security用户

发布于 2012-09-30 22:48:46

您计划如何使用这些信息是如何处理这一问题的更好的说明。如果您试图确保无人使用和SQL注入攻击针对您,答案不是试图用黑名单来检测它。正确的方法是使用诸如绑定变量之类的特性。

如果您的目标是为那些不应该做的事情的人提供一个警告系统,那么检测诸如"and, or, select, delete, where, update, drop"等SQL关键字可能会有帮助。黑名单( SQL查询卫生(黑名单) )的问题是两方面的:你可能会得到假阳性,你可能会错过非常模糊的攻击。虽然它可以为您提供攻击检测方面的优势,但我已经编写了超出这些过滤器的查询,当正常的句子在填写表单时被阻塞时,我感到非常沮丧。

票数 10
EN

Security用户

发布于 2012-10-01 03:26:27

sqlmap使它变得简单(为每个测试位置添加一个*):

代码语言:javascript
复制
sqlmap.py -v 4 -u http://example.com/category*/tutorials*/cooking*/
sqlmap.py -v 4 -u http://example.com/articles*/another-perspective-on-data*

-v 4将在stdout上显示每个GET请求,这样您就可以看到确切的请求并观察sqlmap是如何探测的。

票数 4
EN

Security用户

发布于 2012-10-02 17:30:19

1)通过静态分析请求的文本,无法可靠地检测攻击未遂。

2)正确编写的请求处理程序无需担心SQL注入攻击。

我能看到你可能想做的两件事。

也许您想要识别恶意请求,这样就可以禁止攻击IP。通过检测SQL引用代码(引用传入数据的部分,以便插入查询是安全的)查找可疑字符列表,这样做是合理的。大多数情况下,您希望插入查询的内容将是简单的文本或数字,而查找标点符号是非常可疑的。

也许您希望有一个后防监视攻击,可能已经成功,因为您的表单处理中的错误。您应该将任何失败的查询视为极其严重的问题,记录它们并发送警报。大多数尝试的SQL注入都会失败,因为他们只是猜测如何构造插入的SQL。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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