MySQL注入是指攻击者通过利用应用程序没有正确过滤输入数据而在有意或无意的情况下向MySQL数据库注入恶意SQL语句的攻击。手工MySQL注入是一种常见的安全漏洞检测方法,通常是在网站应用程序开发中对代码的安全性进行测试,以便及时发现并修复安全漏洞。
以下是手工MySQL注入的基本步骤:
1. 确定注入点:通过页面抓包或手动输入尝试注入,尝试判断错误信息是否为SQL语句错误等关键识别信息。
2. 确认数据库类型:利用错误信息或不同SQL语句处理方式如时间函数、字符串函数等推断数据库类型。
3. 检测注入点:通过构造SQL语句,在注入点处注入一个单引号或双引号进行源代码注释、外围括号终结等检测相关。
4. 获取数据库版本:通过sql语句SELECT @@version或SELECT version()获取MySQL版本信息。
5. 获取表名:利用MySQL的信息架构加载器函数(select table_name from information_schema.tables),获取数据库中的所有表名。
6. 获取字段名:利用MySQL的信息架构加载器函数(select column_name from information_schema.columns where table_name=‘tablename’),获取指定表的所有字段名。
7. 获取数据行:构造SQL语句(select * from tablename limit a,b),获取指定行数的数据。
手工MySQL注入是一种非常有效的安全测试方法,但需要注意遵循合法的道德规范,同时也需要充分保护好测试数据,避免数据泄露和滥用。