注入攻击

注入的本质:是把用户输入的数据当作代码执行。前提条件一:用户能够控制输入。二:原本程序要执行的代码,拼接了用户输入的数据。

SQL注入:

        利用现有应用程序,将(恶意)的SQL命令注入到后台数据库执行一些恶意的操作。

造成SQL注入的原因:

        因为程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了攻击者精心构造的恶意代码。

盲注:

        就是在服务器没有错误回显时完成的注入攻击。

常见的盲注验证方法:构造简单的条件语句,根据返回页面是否发生变化,来判断SQL语句是否得到执行。

常见的数据库攻击技巧:SQL猜解数据库对应版本。

                                        http://www.xxxx.com/news.php?id=5 and substring(@@version,1,1)=4 

                                        利用union select确认表名admin是否存在,列名passwd是否存在。

                                         http://www.xxxx.com/news.php?id=5 union all select 1,2,3, from admin

                                         http://www.xxxx.com/news.php?id=5 union all 1,2,,passwd from admin(此为手动注入,自动工具:sqlmap)

防御SQL注入攻击:

    1.使用预编译语句:使用预编译语的SQL语句,SQL语句的语义不会发生改变,攻击者无法改变SQL的结构。

    2.使用存储过程:尽量避免在存储过程中使用动态SQL语句,如果使用,应使用严格的输入过滤和编码函数来处理用户的输入数据。

    3.检查数据类型:限制输入的数据类型。

    4.使用安全函数

其他注入攻击

    1.XML攻击

    2.代码注入

    3.CRLF注入

总结:注入攻击是应用违背了“数据与代码分离原则”导致的结果。只需要牢记“数据与代码分离原则”,在“拼凑”发生的地方进行安全检查。就能避免此类问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值