SQL注入原理篇

0x00
摘要:日前,国内最大的程序员社区CSDN网站的用户数据库被黑客公开发布,600万用户的登录名及密码被公开泄露,随后又有多家网站的用户密码被流传于网络,连日来引发众多网民对自己账号、密码等互联网信息被盗取的普遍担忧。

网络安全成为了现在互联网的焦点,这也恰恰触动了每一位用户的神经,由于设计的漏洞导致了不可收拾的恶果,验证了一句话“出来混的,迟早是要还的”,所以我想通过专题博文介绍一些常用的攻击技术和防范策略。

SQL Injection也许很多人都知道或者使用过,如果没有了解或完全没有听过也没有关系,因为接下来我们将介绍SQL Injection。

0x01
SQL注入就是指web应用程序对用户输入数据的合理性没有明确判断,前端传入后端的参数是攻击者可控的,并且参数带入数据库查询,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。

0x02
一般情况下,开发人员可以使用动态SQL语句创建通用,灵活的应用。动态SQL语句是在执行的过程中构造的,它根据不同的条件产生不同的SQL语句。当开发人员在运行的过程中需要根据不同的查询标准决定提取什么字段(如select语句),或根据不同的条件选择不用的查询表时,动态的构造SQL语句非常有用。

下面以PHP语句为例

$qurey = "SELECT" *from users WHERE id = $_GET[‘id‘];
由于这里的参数ID可控,且带入数据库查询,所以非法用户可以任意拼接SQL语句进行攻击

0x03
当然SQL注入按照不同的分类方法可以分为很多种,如报错注入,盲注,Union注入等
后面我会慢慢的更新

SQL注入原理篇

上一篇:Ubuntu安装mysql未提示输入密码,安装后修改mysql密码默认密码


下一篇:Prometheus+Grafana可视化监控MySQL