• 网站基本功-SQL注入基本介绍


    关于SQL语句的注入的原理和防范.这个是每个做网站的人应该具备的基本功.当年风靡一时的SQL注入,可是在那个年头大行其道.但是掌握其注入原理其实很容易对这个漏洞进行封杀.记得我高中的那个时代,看的电脑报里面就是大篇的对于SQL注入的介绍,只是那个时候自己不能很好的理解,只留下来一个名叫明小子的注入工具.好像是当时黑客必备的利器.写下此篇文章,完全是基于个人学习MySQL数据库时候的理解然后联系以前自己对黑客的了解.然后才想起提笔写下这篇日志.

              首先关于SQL注入的漏洞,这个应该是做SQL数据库的失误导致,众所周知,只要是人写出来的软件和程序就绝对会有漏洞.所以各种软件都会过一段时间就会出来一些升级补丁,微软就是最好的证明.通过不断地测试发现漏洞然后进行亡羊补牢.还有一个原因就是可能是开发SQL的人,自己给自己留下的后门.为自己入侵数据库埋下的伏笔.当然他可能的想法不是入侵别人的数据库,而是对自己的数据库进行非常规路径的管理.比如忘记密码情况下的管理.和那年暴风爆出的后门一样.那就是暴风给自己故意留下的后门.
          关于SQL注入的原理,无非就是利用提交特殊的字符,通过非正常的手段进入数据库,对数据库进行增删改查.相当于取得管理员权限.最经典的测试无非就是or 1=1;and1=2;这个经典测试字符.而且SQL注入应该是基于GET提交数据方式入侵的最大的元凶.对于以GET提交数据的网站,这个问题就尤其突出.而改用POST提交时候应该可以大大杜绝这种注入.其次就是网站开发人员,对SQL语句的运用的没有考虑的情况下,也是容易导致SQL入侵的,毕竟有缝的蛋,才会招惹苍蝇的.
         下面就以一个简单的登陆的页面,对SQL进行简单的分析.
          首先在登录的html界面,如果选择的提交的方式是Method=get;然后再处理数据php程序的过程中是使用的简单的$res=select * from menber where id = $id;再通过提交的密码和$res,进行比较.(这里为了简单,就不涉及MD5()加密.其实一般的网站也是用md5这一句简单的数据库加密算法进行数据加密的.)然后通过比对成功后跳转到要到达的登陆的成功界面,否则就跳转到重新登陆的界面.通过header(Location:*******?)这个来重定向.一般在登陆成功也是通过Header这个重定向,然后这里就一般就是通过get方式提交数据啦.直接定向去成功的页面sucesful.php?name=$name&password=$password.然后这里就是留下注入大的漏洞啦.本来不应该出现的问题,这里就出来啦.要是别人没有密码,只有一个简单的测试正确的id号,然后通过乱输密码并且在后面添加一条or 1=1;然后就会出现很神奇的事情.即使密码没有正确,仍然会定向到成功的页面.而不是定向到重新登陆的界面.
             然后要消除这个注入,其实也比较容易,在发生大规模的SQL漏洞以后,所有的网站基本都已经搞定这个漏洞啦.只要需要对SQL语句进行简单的修改,就可以杜绝SQL注入.第一个就是通过预编译的方法来杜绝.还有注意就是通过POST来提交数据.
          好像就是这样了..到时候想起什么再继续跟进深入.先这样啦..下次写写自己对现在网站一个很实用的防盗链技术的使用...
     
  • 相关阅读:
    bjdctf_2020_router
    Windows下Apache配置https
    Linux定时备份数据库并删除N天以前的数据
    MySQL出现Waiting for table metadata lock的原因以及解决方法
    MySQL操作(五)查询实例
    Windows常用命令
    PHPSTORM常用快捷键
    MySQL操作(四)索引及优化
    MySQL操作(三)数据表
    MySQL操作(二)数据库
  • 原文地址:https://www.cnblogs.com/tangpanpan23/p/3477993.html
Copyright © 2020-2023  润新知