mybatis SQL注入攻击
https://www.cnblogs.com/loveyoulx/p/9526068.html
我们使用 mybatis 编写 SQL 语句时,难免会使用模糊查询的方法,mybatis 提供了两种方式 #{} 和 ${} 。
#{value} 在预处理时,会把参数部分用一个占位符 ? 替代,其中 value 表示接受输入参数的名称。能有效解决 SQL 注入问题
${value} 表示使用拼接字符串,将接受到参数的内容不加任何修饰符拼接在 SQL 中,使用${}拼接 sql,将引起 SQL 注入问题。
SQL 注入检查工具
SQLMAP
SQLMAP 是使用python实现的自动化测试工具
Burp Suite Community 抓包工具
具体操作步骤:
1.使用Burp Suite Community抓包,并将抓包内容(aciton–>copy to file), 另存为其他文件
2. 使用SQLMAP 测试SQL 注入
sqlmap.py -r 3.txt --batch --level 5 --keep-alive --threads=10 --dbms="mysql" --os=linux --common-tables --privileges -U mysql --random-agent -D database --tables --tamper=space2morehash.py --passwords --technique=E --sql-shell
参数说明:
--batch: 交互自动确认,Y
--level: 扫描等级
--keep-alive:保持长连接
--threads: 线程数量
--common-tables 爆破表信息
--privileges -U mysql 爆破数据库用户为mysql的权限信息
--dbms="mysql" 指定数据库为mysql
-D database --tables 指定数据库,爆破表信息
--tamper=space2morehash.py 脚本注入测试
--passwords 爆破密码
--sql-shell SQL shell注入测试