首页 > 代码库 > POST注入--搜索框

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="http://www.mamicode.com/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,这个语句相信大家就很熟悉了.

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

  

POST注入--搜索框