作业(关于sql注入)

1·sql的注入原理:
用户输入的东西,可以是数字,字符,或者其他的什么语言会被整合到后台的服务器上进行执行,而SQL注入就是通过构造合法的语句,让这语句整合到后台服务器上执行一些违法的操作。

2.sql注入具体的案例:


数字型注入(post)

$ id=$_POST['id'];
$ query="select username,email from member where id= $id";
$ result=execute($ link, $query);
这里我们可以看到, $id这里没有做任何的处理,如果我输入:
1 or 1( $ query="select username,email from member where id= 1 or 1")那么该出语句就恒为真了,就可以遍历出来其他的信息了。

搜索型注入

  $ query="select username,id,email from member where username like '% $ name  % ' ";
  $result=execute($link, $query);
这里我们可以看到它做了处理,就是(‘%   %’),不过按照sql注入原理,我们也可以让它恒为真,比如输入:1 %'  or 1 #   整合到后台:
( $ query="select username,id,email from member where username like '% 1 %'  or 1 #   % ' ")

就可以恒为真了。思路是先闭合掉它的语句,然后再加上 or 1 #(#这里是注释掉的意思,就是后面都不要了。)


字符型注入

 $ query=" select id,email from member where username='$name' ";
 $ result=execute($link, $query);

和搜索型一样的思路:先闭合掉,然后再加上 or 1#。例如输入:
1’or 1# 整合到后台就变成了

 $ query=" select id,email from member where username='1’or 1#' ";

这里要注意一下,闭合的方法有很多比如这里也可以用双引号,都可以试试,不行就换换。


3.总结:
sql注入绝对不止这么一点点,这里的只是冰山一角,甚至sql有专门的一本书,这里就举几个例子。

关于是否存在sql注入问题,可以先输入一些语句,看看后台的反映,如果它反映说语句错误,那么这里就存在sql注入漏洞。


新手上路,这是作业,不对的地方请指正。

猜你喜欢

转载自blog.csdn.net/qq_43814486/article/details/88798486