本系列文章将从SQL注入基础讲解,面向初学者,循序渐进。
如有不足,敬请指正。
前置技能
- 了解SQL语言、语法、操作、常用函数
(基本的SQL数据库操作是进行SQL注入攻击的基础) - 了解PHP语言,以及PHP+SQL的常用组合操作
- 了解网站架构、不同数据库的差异
- 了解burp suite、sqlmap等工具
- 了解http基本的get、post方法
本文以假设存在的www.test.com/index.php
注入页面为例
1.什么是SQL注入
所谓SQL注入,就是通过把SQL命令插入到 Web表单提交 或 URL 或 页面请求等的查询字符串中,最终达到欺骗服务器执行恶意的SQL命令。
即:将构造的SQL语句插入到正常提交的字符串中,并使服务器将字符串中的命令解析为可执行命令而不是字符串。
e.g.-1
在www.test.com/index.php
的源码中有如下的代码:
$query="select name from users where id='$_GET['id']'"
以get方式获取参数id,基于用户输入的参数id找到相应的name,正常情况下id为1,2