sql注入浅谈
2016-08-04 16:55
113 查看
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.转义单引号等特殊字符。
客户端能够操作接收的参数对网页产生影响。
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.转义单引号等特殊字符。
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- Android之获取手机上的图片和视频缩略图thumbnails
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 数据库链接字符串查询网站
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列