失效链接处理 |
SQL注入详解(扫盲篇) PDF 下载
本站整理下载:
相关截图:
![]()
主要内容:
关于 SQL Injection (SQL 注入)
SQL Injection 就是通过把恶意的 SQL 命令插入到 Web 表单让服务器执行,最终达到欺骗服务器或数据库执行恶意的 SQL 命
令。
学习 SQL 注入,首先要搭一个靶机环境,我使用的是OWASP BWA,感兴趣的可以去官网下载一个安装,除了 SQL 注入,
很多靶机环境都可以在 BWA 中找到,它专门为 OWASP ZAP 渗透工具设计的。
$id = $_GET['id'];
$getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'";
$result = mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' );
$num = mysql_numrows($result);
这是一个很简单的 PHP代码,从前台获得 id 的值,交给数据库来执行,把结果返回给前台。
比如我们在 OWASP 里输入 id = 1,点击 Submit,返回结果如下:
稍微懂一点后台或者数据库的人都知道,上面的那段代码是有严重问题的,没有对 id 的值进行有效性、合法性判断。也就是
说,我们在 submit 输入框输入的如何内容都会被提交给数据库执行,比如在输入框输入1' or '1'='1,执行就会变成:
//原先要在数据库中执行的命令
SELECT first_name, last_name FROM users WHERE user_id = '1'
//变成
SELECT first_name, last_name FROM users WHERE user_id = '1' or '1'='1'
注意一下单引号,这是 SQL 注入中非常重要的一个地方,所以注入代码的最后要补充一个 '1'='1 让单引号闭合。
由于 or 的执行,会把数据库表 users 中的所有内容显示出来,
|