更多课程 选择中心

软件测试培训
达内IT学院

400-996-5531

软件测试知识分享之安全测试

  • 发布:9016
  • 来源:自动化软件测试
  • 时间:2018-08-21 13:28

今天小编在达内软件测试培训想要跟大家分享的是安全测试方面的知识:SQL注入(SQL Injection)漏洞示例,这方面的知识你是否欠缺呢?赶紧来学习吧:

1、在OWASP Top 10(2017 RC2)中,注入类攻击名列榜首;

2、SQL注入是一种将SQL代码添加到输入参数中,传递到服务器解析并执行的一种攻击手法;

3、以下实际场景实验,打开靶机,大家可以看到这是一个根据用户ID查询用户信息的页面:

这是一个根据用户ID查询用户信息的页面

4、在“User ID: ”输入框里输入“3”,提交,可以看到页面显示ID = 3的用户信息,通过页面返回,我们猜测程序伪代码是:select first_name,last_name from TABLENAME where user_id = '+文本框内容+';

在“User ID: ”输入框里输入“3”,提交

5、模拟黑客“拖库”,在“User ID: ”输入框里输入“' or 1=1 -- ”,这里的"--"是MYSQL数据库的注释符,在它后面的内容全部作为注释信息,不被执行。提交后,程序拼接并在数据库执行的SQL是:select first_name,last_name from TABLENAME where user_id ='' or 1=1(因为--的存在,程序代码里主动拼接出的'符号,变成了注释内容,躲避了语法错误), 攻击成功,因为“or 1=1”的存在,返回表中所有用户信息(可以和数据库客户端截图对比观察):

模拟黑客“拖库”,在“User ID
模拟黑客“拖库”,在“User ID

6、猜表名,在“User ID: ”输入框里输入“' 3' and exists(select * from admin) --”,提交,系统返回dvwa.admin表不存在(类似的,我们可以根据数据库返回,判断数据库的具体类型):

猜表名,在“User ID: ”

7、继续猜表名,在“User ID: ”输入框里输入“' 3' and exists(select * from users) --”,提交,系统返回id =3的数据,证明数据表dvwa.users存在:

继续猜表名,在“User ID: ”

8、上面第5步是SQL注入的基础手法。到现在为止,已经猜到表名,且可以在输入框里输入除了ID以外的其他SQL命令,且获得执行,如果还是想不起来能做什么,那你真的不适合做黑客;

9、最后提几个常用SQL注入的预防方法:

--采用预编译 .PreparedStatement、

--严格检查输入变量的类型和格式、

--过滤和转义特殊字符。

感谢您的阅读,以上就是达内软件测试培训带给大家的安全测试方面的知识——SQL注入(SQL Injection)漏洞示例,你都掌握了吗?更多软件测试相关的知识,尽在达内软件测试培训机构,敬请关注!

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:软件测试培训分享之软件测试的策略及流程总结
下一篇:如何有效搭建测试环境才能让我们的软件测试工作事半功倍?

你知道吗?做软件测试不一定需要精通代码!

软件测试人员不需要懂代码,这是一个伪命题!

如何设计登录测试的设计用例?

软件测试必备的数据库知识有哪些?(终)

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

陕西省

湖南省

贵州省

云南省

广西省

海南省