1 2 3 下一页 第一讲:判断有没注射点 这个很简单,我们最常用的就是看到页面的格式为:index.PHP?id=2这样的地址,我们知道PHP经常是和MySQL数据库一起用的,在MYSQL数据库中一定存在一个表,比如setting_table,我们提交上面地址的时候,程序一般上这样处理的: 1、用GET或者POST取我们提交的id=1把这个值传给一个变量:$id. 2、查询:select * from setting_table where id =$id 上面的语句就是查询的语句,我们代入$id=1就是: select * from setting_table where id=1 这话是没什么问题的,会取出id为1的信息进行显示给我们,所以我们就能看到正常的页面。 -------------- 看我们是怎么判断的: 1、我们提交id=1 and 1=1 看看这个是什么效果,这里的$id就是1 and 1=1,我们看看是什么样子的: select * from setting_table where id =1 and 1=1 这个语句加了一个and 语句,后面是1=1是肯定成立的,所以就不影响上面语句的成立,它还会取出id=1的信息进行显示给我们,所以我们看到的还是原来的正常页面。 2、我们提交 id =1 and 1=2 看看这个是什么效果,这里的$id就是 1 and 1=2,我们看看在SQL中怎么执行 select * from setting_table where id =1 and 1=2 分析下这个语句,前面还是一样的,只是最后加了个and 1=2,这个自然不成立啦!又因为是and连接的,so自然找不到符合条件的啦!只能回显给我们一个错误或者空白的页面拉~!! 上面就是一般我们采用and 1=1 & and 1=2来判断的基本原来,但是这里还要注意几点,如下: 1、程序处理的时候必须是where id =$id 而不是where id=$id,这个单引号是很不一样的,怎么不一样,以后再说。 (责任编辑:admin) |