新书
速递
吴老的java版《selenium webdriver 实战宝典》和python版《selenium Webdriver 3.0 自动化测试框架实战指南》出版了,代码拿来就能用。
文 李文祥
一、Web安全漏洞概念及原理分析
1.1
跨SQL注入
概念:SQL Injection按照字面意思来翻译就是“SQL注射”,常被叫做“SQL注入”,它的含义就是利用某些数据库的外部接口把用户数据插入到实际数据库操作语言当中,从而达到入侵数据库乃至操作系统的目的。SQL注入漏洞形成原因是:用户输入的数据被SQL解释器执行。
原理分析:假设如下URL存在漏洞
构造数据库原型:
select * from table_name where id=1
那么提交:
select * from table_name where username=‘or’=‘or’ And pass=‘or’=’or’
这样,如果页面和id=666返回相同的结果,就说明附加查询条件成立,如果不同,就说明不成立。
手工判断能否进行SQL注入方法:
第一步先把IE菜单=>工具=>Internet选项=>高级=>显示友好 HTTP 错误信息前面的勾去掉。否则,不论服务器返回什么错误,IE都只显示为HTTP 500服务器错误,不能获得更多的提示信息。
简单判定有无漏洞: 粗略型:提交单引号'
逻辑型(数字型注入):and 1=1 / and 1=2
逻辑型(字符型注入):' and '1'='1 / ' and '1'='2
逻辑型(搜索型注入): 关键字%' and 1=1 and '%'='% / 关键字%' and 1=2 and '%'='%
危害:获取数据库信息,脱裤,获取服务器权限,植入webshell,获取服务器后门,读取服务器敏感文件等。
示例:
如下,user id查询框中输入1,则正常显示结果如下:
但是,当user id查询框中输入1'时,则显示输出如下:
则该处存在sql注入漏洞。
目前流行的注入工具有:SQLMap、Pangolin(穿山甲)、Havij等。
下期预告
跨站脚本攻击(XSS)
安装喜马拉雅app,搜索“光荣之路”可以收听吴老和他的朋友们分享的35小时测试知识语音
领取专属 10元无门槛券
私享最新 技术干货