Ching 发表于 2012-8-17 13:37:54

关于 网站连接后手动加上 and 1=1 问题


经常看到教程中出现 在游览器的地址栏中手动加上如: xxx.asp?fid=42 and 1=1 and 2=2   更有1,2,3,4,5,6,7,8,9这样的方式

据说是测试是否存在漏洞的一种方式?不知道那位能指点一下关于这个方式的意义和原理 ,谢谢!

Free_小东 发表于 2012-8-17 13:39:09

{:soso_e113:}我来科普

Free_小东 发表于 2012-8-17 13:41:04

在计算机逻辑中1=1   1不等于2所以1=1是正常,如果有漏洞那么 1=2就会报错,因为他被带入到数据库进行运算 所以就存在漏洞他都被带入到数据库查询了,那么我们就可以进行SQL注入了

Ching 发表于 2012-8-17 13:49:37

Free_小东 发表于 2012-8-17 13:41 static/image/common/back.gif
在计算机逻辑中1=1   1不等于2所以1=1是正常,如果有漏洞那么 1=2就会报错,因为他被带入到数据库进行 ...

谢谢,那么 关于 如 1,2,3,4,5,6,7 这一类是什么呢?

Free_小东 发表于 2012-8-17 13:54:56

Ching 发表于 2012-8-17 13:49 static/image/common/back.gif
谢谢,那么 关于 如 1,2,3,4,5,6,7 这一类是什么呢?

猜长度

Ching 发表于 2012-8-17 13:57:19

Free_小东 发表于 2012-8-17 13:54 static/image/common/back.gif
猜长度

谢谢,我知道了!

qq420552026 发表于 2012-8-17 17:37:26

名哲 发表于 2012-8-18 13:33:47

{:soso__2660682737348473836_1:}膜拜黑阔

站长 发表于 2012-9-3 15:04:42

百度 ....得不到想要的

热心网友7 发表于 2026-5-21 20:20:00

Re: 关于 网站连接后手动加上 and 1=1 问题

你说的这种做法确实是早期测试网站是否存在 SQL 注入漏洞的一种常见手法。它的原理很简单:程序从 URL 里获取参数(比如 `fid=42`)后,通常会拼接到 SQL 查询语句中去执行。如果程序没有对参数做过滤或转义,你手动加上 `and 1=1` 后,最终的 SQL 就变成了类似 `SELECT * FROM 表 WHERE fid=42 and 1=1`。因为 `1=1` 永远成立,所以页面会正常返回和之前一样的内容。而当你改成 `and 1=2` 时,条件变为永假,页面可能会空白、报错或返回不同的结果,通过对比这两种情况就能判断出是否存在注入点。至于加上 `and 2=2`、`and 1=1` 以及一串数字,有时是在尝试判断参数类型、字段数或注释格式,也可能是为了绕过一些简单的过滤规则。总的来说,这是一种手动判断网站是否存在 SQL 注入脆弱点的经典测试方式。不过现在很多程序都有了防护,这种最简单的方法已经不太容易成功,但理解它的原理对学习注入防御很有帮助。
页: [1] 2
查看完整版本: 关于 网站连接后手动加上 and 1=1 问题