接口测试之SQL注入
首页我们先熟悉一下什么是接口SQL注入:就是通过把SQL命令插入到接口参数中,通过接口传达到服务器,欺骗服务器执行恶意的SQL命令。
比如在一个登录界面,要求输入用户名和密码:
可以这样输入实现免帐号密码登录:
用户名: user’--
密 码:12345
点登陆,如若没有做特殊处理, 从理论上说,后台认证程序中会有如下的SQL语句:
String sql ="select * from user_table here username=
'"+userName+" ' and password=' "+password+" '";
当输入了上面的用户名和密码,上面的SQL语句变成:
SELECT * FROM user WHERE username = ‘user’-- ‘AND password = ’12345‘
分析SQL语句:
‘-- ’后面都被注释掉了,相当于:
SELECT * FROM user WHERE username = ‘user’
此时就是只要存在这个用户就可以登录成功。这是一个相对善良的注入,如果注入一些删表等语句后果就可想而知了。
接口-SQL注入测试方法:
1. 工具扫描(SQLmap , Pangolin等)
2.手动参数配置为特殊字符或SQL脚本。
安装:
1.先安装python环境,再执行下面命令:
git clonehttps://github.com/sqlmapproject/sqlmap.git
检测是否可注入命令:
Python sqlmap.py–u ‘URL’ --
结果查看:post
parameter ‘id’ does not seem to injectable表示检查的接口是不可攻击的。
可攻击样例:待补充
网友评论