2018-06-17

接口测试之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’ --


2018-06-17_第1张图片

结果查看:post

parameter ‘id’ does not seem to injectable表示检查的接口是不可攻击的。


2018-06-17_第2张图片

可攻击样例:待补充

你可能感兴趣的:(2018-06-17)