zoukankan      html  css  js  c++  java
  • 简述sql注入漏洞

    什么是sql注入漏洞

    百度解释:

    SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

    个人理解sql注入的根本原因:

    在写与数据库交互的语句时,直接将用户输入的数据跟sql语句进行拼接,没有过滤内容,导致用户可以修改整条语句的结构,产生不同的数据库操作语句,没有经过任何的过滤就直接放入数据库引擎执行。

    sql注入对网站导致的危害

    攻击者可以直接或者间接的操作数据库。sql注入的危害,一直排行在owasp排行榜的top10高居不下,其危害性不言而喻,又能够直接获取数据又能够获取权限,但是注意危险行为,切莫越界。

    如何挖掘出sql注入漏洞网站:

    黑盒渗透测试

    网站中的每个参数值,思考是否与数据库进行交互。例如登陆页面,获取http头(user-agent/client-ip等),订单处理,查询功能

    白盒安全测试

    通读代码,寻找数据库相关语句,也可以结合相关功能点,针对性的进行寻找sql语句,黑白盒结,对量比较大的代码会显得效率高很多,主要是看对传入的参数是否直接进行拼接,对传入的参数是否进行了完整的过滤函数过滤。是否采用了其他sql语句编写模式,例如php中的pdo是否进行了预编译处理,当然预编译也不是完全安全的。

    发现这个网站sql注入漏洞能做什么

    查询数据库内容,获取网站数据,获取后台登陆帐号密码登入后台,修改内容钓鱼等其他间接利用(权限较小时);利用数据库直接进行提权,写入一句话,执行系统命令(权限够大时)等等。

    怎么去运用此漏洞呢?

    在互联网上的sql注入跟rce不一样,sql注入容易猜测网站跟数据库交互的位置,所以黑盒产出sql注入漏洞也是非常的多的,但是相对于一个比较安全的
    网站而言,进行了一系列的函数导入以及过滤,也是会让黑盒变得非常头大,白盒的优势就是可以看到过滤了些什么,以及sql语句的编写方式,是否是拼接
    进入数据库的等等,更加的具有针对性,就是代码内容会比较繁多。要进行上下的追踪查询。这里提一句,sqlmap一款非常不错的工具,以高自动化著称,
    节省了渗透时的不少时间,也相信大部分的人都知道以及使用过,但是工具还是工具,我们需要理解原理以及寻找漏洞点。

    发现漏洞如何修复

    常见的方式有好多,简单的就是直接导入一个现成的过滤函数,比如像是360safe函数又或者是dedecms采用的过滤函数都是非常的好用,但是也不代表是
    完全安全的,比如你内容采用了编码进入,那么函数就会识别不出来而直接无效了。所以最重要的是编写sql语句时的规范,比如预编译等等操作,还有自带的
    过滤函数,这里插一句,在大多数情况下,只需要过滤单引号其实就能抵挡大多数的sql注入,除非你是没有进行单引号包裹,直接进行拼接的数字型,那自然
    过滤了单引号是没有用处的。对传入的值进行参数化也是一种防范方法,但是事总无绝对,例子就不举了,具体去网上搜寻。还有就是不要以为买了waf
    就高枕无忧了,waf并不能修补漏洞,waf在高手面前并没有什么阻挡能力,关于waf的讲解以后也会提及,写的不是很好,有错误请纠正。

    我的志向是星辰大海。
  • 相关阅读:
    [工具推荐]005.Axure RP Pro 7.0模拟C#TAB控件
    [安卓基础] 008.Android中的显示单位
    [JavaWeb基础] 008.Spring初步配置
    [批处理教程之Shell]002.Linux 常用命令大全
    [注]新手学习编程的最佳方式是什么?
    [C#打包部署教程]001.VS2012 + InstallShield
    [站点推荐]001.学习新技能的37个最佳网站(The 37 Best Websites To Learn Something New)
    程序员如何像写代码一样找女朋友
    [工具-006] C#如何模拟发包登录
    [Linux系统] (1)常用操作(CentOS 7.x)
  • 原文地址:https://www.cnblogs.com/xiaqingfeng/p/12740035.html
Copyright © 2011-2022 走看看