PHP安全编程之SQL注入

时间:2022-02-10 08:18:02

今天晚上来学习一下phpsql注入

首先搭建测试环境, 一个新闻内容页

从URL地址栏获取文章id 从数据库中读取

SELECT * FROM news WHERE id=$id

可以看到,这里的$id从地址栏获取并带入到数据库中进行查询操作

我们可以通过这里来实现我们的sql注入攻击

首先判断注入 ’ 或者 and 1=2 如果页面显示出现问题,那么就是存在sql注入

存在sql注入之后 我们可以通过UNION联合语句进行注入

当然首先是暴力猜解数据表名

UNION SELECT FROM admin

然后我们可以通过下面这种手段来直接获取数据库的有关信息,
UNION SELECT database(),version(),user()

用户ID:sqlin
文章标题:10.1.9-MariaDB

爆出: 数据库名 sqlin 数据库用户名 root 数据库地址 localhost 数据库版本 MariaDB

还有操作系统 @@version_compile_os
WIN32 指的是当前版本运行环境
没有多大意义 Windows 64位版本中可以兼容32位的程序

下面就是只针对mysql5.0版本以上的数据库才有效
原理 mysql5.0版本以上中新添加了一个数据表叫做 information_schema
里边存储了很多敏感信息

使用这个方法进行注入时需要使用一个编码转换工具 ,我这里使用的是小葵多功能转换工具

使用这个工具可以将sql语句转换为注入时需要的语句