软件测试 | SQL注入学习小结

Posted 软件测试资源分享

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试 | SQL注入学习小结相关的知识,希望对你有一定的参考价值。

testkuaibao|软件测试自学公众号

简介

SQL 注入是一种专门针对SQL语句的攻击方式。通过把SQL命令插入到web表单提交、输入域名或者页面请求的查询字符串中,利用现有的程序,来非法获取后台的数据库中的信息。在web的测试中涉及到的会比较多些。


注入原理

存在注入的原因是后台在编写程序时,没有对用户输入的数据做过滤。 例:

软件测试 | SQL注入学习小结

1、用户在某个输入框提交的参数是123。

 浏览器提交的URL为: http://www.xxx.com/index.php?id=123   

服务器后台执行SQL语句:select * from table1 where id = 123  

此时是没有任何影响的。

软件测试 | SQL注入学习小结
软件测试 | SQL注入学习小结

2、 如果用户提交的参数是 123;drop table   

服务器后台执行SQL语句: select * from table1 where id =123 ; drop table  

相当于后台执行了两条SQL语句,查表,并且把table删除, 从而导致了SQL注入。

软件测试 | SQL注入学习小结

检测注入的方法

目前主要有两种检测方式:

一、手工注入检测流程:

软件测试 | SQL注入学习小结

1.  判断是否存在注入点 

www.abc.com/index.php?id=2

www.abc.com/index.php?id=2 and 1=1

www.abc.com/index.php?id=2 and 1=2

第2条返回正常,

第1,3条返回不正常说明id参数存在注入漏洞

软件测试 | SQL注入学习小结
软件测试 | SQL注入学习小结

2.  判定是否存在admin表

www.abc.com/index.php?id=2 and exists(select * from admin) 

返回正常,存在admin表

软件测试 | SQL注入学习小结
软件测试 | SQL注入学习小结

3.  猜admin表中的字段名

www.abc.com/index.php?id=2 and exists(select username from admin)

返回正常 表示admin表存在username字段

软件测试 | SQL注入学习小结

 4.  检测其他sql操作

二、工具检测:

sqlmap:  sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。


https://github.com/sqlmapproject/sqlmap.git 


2. 常用命令

软件测试 | SQL注入学习小结

有些命名发布排版会乱,所以只能截图


测试

以一个sqlmap检测URL为例:


1. 检测过程:     

软件测试 | SQL注入学习小结

2. 检测结果:


可知该次注入检测没有成功。感兴趣的小伙伴可以寻找可注入的网址进行测试,更深入的内容还需要进行更多的探索。

来源:图文来自网络,如有侵权请联系删除

觉得文章不错就点个在看呗,转发就更好了

以上是关于软件测试 | SQL注入学习小结的主要内容,如果未能解决你的问题,请参考以下文章

SQL注入之注入语句小结

SQL注入测试学习布尔盲注

sql注入之提交参数类型小结

sqlmap的学习之路-自动化测试SQL注入工具

SQL注入测试平台 SQLol -1. 简介与安装

sql注入学习总结