sql注入浅谈

来源:互联网 发布:sql replace 正则替换 编辑:程序博客网 时间:2024/05/21 17:07

sql注入的原理:

客户端能够操作接收的参数对网页产生影响。


sql注入的条件:

1.接受参数,比如id,name等等

2.是否带入数据库查询。


判断方法:

1.加英文单引号

2.and 1=1 和 and 1=2

3.使用or或者是xor等运算符

4.在参数值前面加负号。

方法用很多,只要是能对页面产生影响都可以。


单纯的sql注入所需的条件:

1.数据库当前用户具有File权限。(注:使用sqlmap的相关命令可以查看用户权限,语法:?id=num --privileges -U 当前数据库用户名)

2.知道网站根目录的绝对路径。

方法:①查看PHP报错信息,利用的是mysql_error()函数。

   ②利用Google黑客搜索错误或者是警告信息。

   ③利用loadfile()函数,读取相关配置文件。

3.数据库当前用户有权到网站目录下写文件。

4.要注意,单引号不能被转义。否则影响into outfile()函数写入文件。


单纯的MySQL防御方法:

知道了注入的手法之后,所要做的就是根据攻击手法进行防御。

1.数据库账号不要使用root权限的账号。若要使用root权限,可以使用su命令。

2.关闭PHP的报错模式。在php.ini中,display_errors = off

3.数据库账户无权限在网站目录下写入文件。

4.转义单引号等特殊字符。



0 0