有没有办法找到SQL注入漏洞?
注意:我问如何在您控制的服务器上找到它们,以便您可以修复它们。我不是在询问如何在别人的服务器上检测它们来利用它们。
有没有办法找到mysql_query()
的每一次出现而不打开每一页并执行ctrl+f
?
答案 0 :(得分:10)
使用linux,您可以使用grep
实用程序。
find /dir/containing/files -type f -name '*.php'|xargs grep --color=auto "mysql_query"
/dir/containing/files
:包含PHP文件的目录,例如/home/user/domains/example.com/public_html -type f
:仅搜索文件(不是目录)-name '*.php'
仅匹配以.php
结尾的文件。如果您想匹配其他文件,例如.inc
请改用:-name '*.php' -o -name '*.inc'
(匹配* .php或* .inc)|xargs grep
使用找到的文件内容进行搜索--color=auto
突出显示找到的部分"mysql_query"
您的搜索字词答案 1 :(得分:6)
话虽如此,你应该研究this question/answer线程并应用它们。
要搜索mysql_query()
,,您可以使用文本编辑器的搜索文件功能。我使用 Notepad++ 并且search-in-files
可以搜索目录中的mysql_query
字符串以及具有特定扩展名(在您的情况下为.php)文件的子目录
带有Notepad ++屏幕截图的教程是here。
答案 2 :(得分:2)
在python中创建了一个名为w3af的开源项目,除其他外,它用于查找SQL注入问题。
从页面下载,然后在启动时选择fast_scan配置文件,在Target上输入您的URL(如果您在本地运行,则可能类似http://localhost:8080)并运行应用程序。
如果它能找到任何sql注入问题,它会让你知道。
在检查所有mysql_query
次来电以检查一切是否正常后,可以执行此步骤。
答案 3 :(得分:0)
到目前为止,查找SQL注入漏洞的最佳方法是使用Fuzzer,例如Acunetix($)NTOSpider($$$),Wapitit(开源,非常好),W3AF(开源,不太好。)
确保dispaly_errors =开启。这些工具通过插入'"
等错误数据并查看是否显示错误来检测sql注入。他们还通过注入需要花费很长时间' sleep(30)--
的查询来检测sql注入,以查看请求是否需要超过30秒。
答案 4 :(得分:-1)
如果你想搜索一下Red Gate的优秀SQL Search工具(它是免费的!),但它只适用于SQL Server。