跨SQL注入

概念

SQL Injection按照字面意思来翻译就是“SQL注射”,常被叫做“SQL注入”,它的含义就是利用某些数据库的外部接口把用户数据插入到实际数据库操作语言当中,从而达到入侵数据库乃至操作系统的目的。SQL注入漏洞形成原因是:用户输入的数据被SQL解释器执行。

原理分析

假设如下URL存在漏洞
http://www.xxx.com/xx.asp?id=666

构造数据库原型:
select * from table_name where id=1

那么提交:
http://www.xxx.com/xx.asp?id=666 and [查询语句]

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,获取服务器后门,读取服务器敏感文件等。

则该处存在sql注入漏洞。
目前流行的注入工具有:SQLMap、Pangolin(穿山甲)、Havij等。

posted @ 2017-12-24 20:38  mrwuzs  阅读(220)  评论(0编辑  收藏  举报