zoukankan      html  css  js  c++  java
  • sql 注入

    在图书管看到一本关于sql注入和防御的书籍,突然间兴趣就来。然后搜索就搜到了这么前辈的blog:

    http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html

    http://blog.donews.com/zwell/archive/2004/10/21/141906.aspx

    总结今天所看的内容:

    首先了解到web应用的架构,理解sql注入是在逻辑层到存储层之间的。我们通过在表示层的输入来通过逻辑层转到存储层,并且在存储层起效。

    1.可以在url的中注入自己的语句。在url中可以观察传递的参数的类型,如果是字符串我们则可以用类似与 'OR'1'='1 之类的返回,因为这种字符串加到原来url的参数中会使得查询的语句显示所有的查询结果;如果我们观察到参数的类型为整数,则可以直接加 OR '1'='1',对与这么加当然是可以的。而且这么加也能够能到用户信息,一般来说这么处理的话会使得非用户的情况下登录得到用户,并以该用户登录应用这些都是可以处理的,但是如果我们在其中加入的不是这个字符串的话,那么我们可以换个字符串。比如 UNION ALL SELECT LOAD_FILE('/etc/password')。从这里可以知道,如果如果网站对于用户输入的信息(post,get)的信息等没有预处理的话,可以再url上动手脚。而且可以在url的参数上添加任意字符串这就随意了。

    这里我认为最主要的就是观察网页之间的数据信息,可以思考是否有可以注入的地方。

    2.前面一种情况是正确的注入了sql了,但是当没有注入成功的时候并不代表着应用安全。如果sql注入失败的时候返回了错误的信息,会返回错误信息。可能网站反馈的错误信息能够提供线索。

    3.作为一个web应用,也许根本就不需要数据就能进入下一个网页。我们可以在地址栏中直接输入下一个网页的url,然后则越过。

     

    还有是数据库的配置的问题,对于数据库的默认账户应该注意。安全的方法是不同的操作的用户应该有不同的权限。

     

    ps:即使只有三分钟的热度,但是不能没有热度。

  • 相关阅读:
    Fedora 19 配置参考
    Lua 函数、闭包、尾调用总结
    基于MFC简单图片裁剪工具
    【OpenGL 学习笔记04】顶点数组
    【OpenGL 学习笔记03】点画多边形
    【OpenGL 学习笔记02】宽点画线
    【OpenGL 学习笔记01】HelloWorld示例
    【SSH + BootStrap】实现的无线点餐系统
    【C++ 基础 11】 函数指针总结
    【C++基础 10】四种cast转换的区别
  • 原文地址:https://www.cnblogs.com/yoru/p/4025355.html
Copyright © 2011-2022 走看看