zoukankan      html  css  js  c++  java
  • POST注入--搜索框

      POST注入的分类有很多:

         搜索框

         登录框

         认证框

         还有XXXX,总之什么情况就是什么注入

      言而总之,都他么一样,不就是POST传数据的时候动点手脚么?

      

      写了个简单的搜索框注入的网页:

        代码折叠了,大家展开看

      

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4     <title>搜索型注入</title>
     5     <meta charset="utf-8">
     6 </head>
     7 <body>
     8     <h1>学无止境--POST注入</h1>
     9     <form action="" method="POST">
    10         搜索内容:<input type="text" name="content">
    11         <input type="hidden" name="hid" value="1">
    12         <input type="submit" name="">
    13 
    14     </form>
    15     <?php
    16         if(isset($_POST['hid'])){
    17             $content = !empty($_POST['content'])?$_POST['content']:"";
    18             if($content == ""){
    19                 exit("请输入要搜索的内容");
    20             }
    21             $link = mysql_connect("127.0.0.1","root","root");
    22             mysql_query("set names utf8");
    23             mysql_select_db("sqli");
    24             $sql = "select * from search where content = '$content'";
    25             /*
    26                 创建数据表
    27                 create table search(
    28                     id int primary key auto_increment,
    29                     content varchar(30)
    30                 )charset utf8;
    31                 插入测试数据
    32                 insert into search values(NULL,'Hello'),(NULL,'World');
    33             */
    34             $result = mysql_query($sql);
    35             while($row = mysql_fetch_array($result)){
    36                 echo "ID:".$row['id'];
    37                 echo "内容:".$row['content'];
    38                 echo "<hr />";
    39             }
    40             echo "执行的SQL语句:$sql";
    41         }
    42     ?>
    43 </body>
    44 </html>
    学无止境

      我数据库一共有两条数据,分别是Hello和World,来搜索一下看看

      

      分析一下执行的SQL语句,我们通过数据库查询条件为content字段内容等于Hello的数据,但这个SQL语句并不安全

      我们把搜索内容换一下:Hello' and 1=1 #

      

      可以看到结果也是正常的.也就是说我们成功的把语句代入到数据库了.

      接下来也就和普通注入没什么区别了...

      

      OK,简单的解释一下SQL语句.我们搜索的内容是Hello' and 1=1 #,代入到数据库的语句是:select * from search where content = 'Hello' and 1=1 #'

      在Hello后面的那个单引号闭合了前面的单引号,让Hello成为了一个单独的字符串,随即就是我们的注入语句,最后是一个#,注释了后面的单引号,数据库在执行语句的时候其实执行的是:select * from search where content = 'Hello' and 1=1,这个语句相信大家就很熟悉了.

      大家有喜欢的可以加个好友一起研究学习.

      

  • 相关阅读:
    强烈推荐Seam实战
    关于写给大家看的C语言书(第2版)的读后感
    在Win7系统上安装ccnet 安装笔记
    使用Itext把html转换成pdf文件
    升级项目到Vs2010,编译时出现:MSB6006: “LC.exe”已退出,解决方法
    vs2010 插件不显示的问题处理。
    几个软件研发团队管理的小问题
    关于UML风格(第2版·英汉对照)的读后感
    C#本质论(第2版)的评论
    IDA Pro代码破解揭秘这本书怎么样
  • 原文地址:https://www.cnblogs.com/Miracle-reproduction/p/7223020.html
Copyright © 2011-2022 走看看