SQL注入总结

一,SQL注入原理

        SQL注入漏洞产生的原因是因为“程序设计中原sql语句拼接了用户输入的sql语句”,从而改变了程序原sql语句的结构,使得攻击者得以利用以获取数据库信息。

二,SQL注入危害

  • 数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。

  • 网页篡改:通过操作数据库对特定网页进行篡改。

  • 网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。

  • 数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。

  • 服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。

  • 破坏硬盘数据,瘫痪全系统。

三,SQL注入点及检测手段

        注入点1:登录框,blog,id等传参;

        检测手段:单引号(’),双引号(”),右括号()),单双引号和右括号的组合

        注入点2:搜索框

        检测手段:百分号(%),百分号和单双引号,百分号和右括号的组合

        注入点3:cookie,user-agent

        检测手段:单引号(’),双引号(”),右括号()),单双引号和右括号的组合

四,SQL注入分类

        1,联合查询注入

                可以使用union关键字的查询注入

        2,报错注入

                报错注入是因为sql函数的格式不正确,或者函数之间发生冲突,从而将产生错误位置的查询语句以报错的形式显示出来。

        3,盲注

                布尔盲注

                        原程序sql语句和拼接的sql语句进行布尔运算后,页面会因为布尔运算的结果产生不同的变化

                时间盲注

                        使用布尔运算符和if函数,sleep函数等根据对页面的响应时间,判断if函数条件语句的正确与否

        4,宽字节注入

                宽字节注入是由于不同编码中,中文所占字节数不同的原因造成的。

        5,堆叠注入

                SQL语句中,分号";"是表示一条sql语句的结束,如同命令注入一样使用;可以执行多条命令,多条sql语句之间以;分割同样会造成多条sqk语句的执行,而且以;分割的语句可以是任意sql语句。

        7,二次注入

                二次注入通常发生在注册页面,会造成admin账户信息被更改

        8,文件读写

                

五,SQL注入绕过手段

        1,过滤空格绕过

        2,过滤and/or 绕过

        3,过滤关键字绕过

        4,单双引号绕过

        5,过滤等号=绕过

        6,过滤大小于号绕过

        7,过滤逗号,绕过

        8,注释符号绕过

        详情参见

六,SQL注入防御手段

        1,addslashes()函数转义预定义字符

        2,mysql_real_escape_string()函数用来转义sql语句中的特殊符号x00,\n,\r,\,',",xa1

        3,使用魔术引号

        4,黑白名单字符过滤

        5,SQL语句预编译

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值