zoukankan      html  css  js  c++  java
  • sql注入闭合思路

    一般的代码:$id=$_GET['id'];

    $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

    就是这里,对id进行了修饰,用'(单引号)把id括了起来。所以我们构造语句的时候,一是要把我们构造的语句‘逃逸’出来,二是要把结构进行补全或者适当的注释。

    注释可以用--+;-- -;#把后面的'或者多余的修饰符注释掉,当然肯定不止这三种我只是举个例子而已。

    一般常见的结构有以下几种:

    or 1=1--+

    'or 1=1--+

    "or 1=1--+

    )or 1=1--+

    ')or 1=1--+

    ") or 1=1--+

    "))or 1=1--+

    既把前面进行补全,后要保证格式的正确,让我们的语句可以顺利执行。



    至于and和or的用法:

    首先and是有假即假。我们先看一个例子 ?id=1' and 1=2 -- - ,很明显1是不等于2的,所以在?id=1是正确回显的情况下,例子一般情况下是不会给予正常回显的。

    而or是有真即真,我们也来看一个例子 ?id=1' and 1=2 -- - ,和上面一样,1是不等于2的,而这个例子网页却可以正确回显。

    通常情况下,or和and在注入的时候影响不算很大,两者区别一般在于盲注。很多时候防火墙拦截过滤了and的时候or可能没有,那就可以用or来进行盲注,节省绕过的时间。又或者用xor(异或)绕过防火墙,异或在这不作过多阐述,因为不在本次范围之内。

    作者:拾瑾
    个性签名:愿历经千帆,归来仍少年.
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    js数组求交集
    php安装oci8和pdo_oci扩展实现连接oracle数据库
    nginx配置静态资源压缩
    SHELL递归遍历文件夹下所有文件
    PHP函数获取临时文件目录
    php去除文件bom头
    tcpdump抓取udp报文
    linux获取当前运行级别
    当安装软件后提示依赖没有安装时
    Ubuntu卸载通过apt-get命令安装的软件
  • 原文地址:https://www.cnblogs.com/ayoung/p/14465354.html
Copyright © 2011-2022 走看看