(想要了解学习编程技术的小伙伴,可以通过下方评论免费获取资源方式)
我仔细想了一下这个问题,如果讲现在黑客攻击最常用的代码,哪必须从黑客最流行的攻击手法来得出这个结论。现在市面上最流行的攻击手法是什么,自然是SQL Injection了,中文叫数据库注入。
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
如何手工检测网站有此漏洞呢?假设网站的URL是http://url/list.php?id=1,哪么提交简单的and 1=1--或是and 1=2来检测。
http://url/list.php?id=1 and 1=1--
http://url/list.php?id=1 and 1=2--
and 在数据库语法中,逻辑为“和”,1=1永远又是真的,所以
http://url/list.php?id=1 and 1=1--会网站页面不变,如果网站有漏洞的话,哪么
http://url/list.php?id=1 and 1=2--页面就会有变化。
市面上所有的注射工具,例如sqlmap,它的error-based、stacked queries、AND/OR time-based blind和UNION query的PAYLOAD等注射判断基本也是依据此方法。
同时今天看到一个很有意思评论:
据说车牌挂这个代码,可以删除交警的视屏录像数据库。使用drop 语句确实可以删除数据库或表,但是现在的程序都是需要开启预处理的,错误及非法词语程序是不读取的。开启预处理现在都是最基本的写法,没有经过处理的代码是不安全的。
领取专属 10元无门槛券
私享最新 技术干货