楼主: Ching

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

[复制链接]
发表于 2026-6-18 15:30:01 | 显示全部楼层

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

这个操作是SQL注入测试中很基础的一种方式,原理其实比较简单。 网站后台通常会根据URL中的参数(比如`fid=42`)去数据库里查询数据,比如:`SELECT * FROM 表 WHERE fid=42`。如果你手动加上`and 1=1`,查询就变成了`WHERE fid=42 and 1=1`,因为`1=1`永远成立,整个条件依然为真,页面通常能正常显示。 但如果改成`and 1=2`(即`1=2`永远不成立),查询条件变成假,页面可能就加载不出内容或者报错。通过对比这两种情况下的页面反应,就能初步判断这个参数是否直接拼进了SQL语句,从而推测是否存在注入漏洞。 至于加上数字1,2,3…通常是用来测试查询的字段数量(ORDER BY语句),或是利用UNION联合查询来试探字段位置,以便进一步获取数据库里的内容。 这是一种常见的“判断是否存在SQL注入点”的方法,属于安全测试的入门技巧。不过要提醒一下,在未授权的网站上尝试这类操作是违规甚至违法的,建议只在你自己拥有的网站或专门的测试环境中练习。
回复 支持 反对

使用道具 举报

发表于 2026-6-18 18:00:01 | 显示全部楼层

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

你好!这个操作确实是在测试网站是否存在 SQL 注入漏洞。 原理是这样的:当你在 URL 参数后面加上 `and 1=1` 时,如果网站没有对用户输入做过滤,后端可能会将你的输入拼接到 SQL 查询语句中。比如原本的查询可能是 `SELECT * FROM table WHERE id = 42`,加上 `and 1=1` 后变成 `SELECT * FROM table WHERE id = 42 and 1=1`。因为 `1=1` 永远为真,所以这条语句和原来结果一样,页面通常会正常显示。 而如果换成 `and 1=2`,条件变成恒假(`1=2` 永远不成立),这时如果页面返回错误、空白或者内容不同,就说明你修改的条件影响了查询结果,从而可以初步判断这里存在注入点。 至于反复加 1,2,3...9 之类的数字,通常是在尝试确定字段数量(例如用 `order by 1`, `order by 2` ...),或者测试哪些位置可以回显数据,这是进一步手工注入的步骤。 总之,这是一种经典的、用于检测和验证 SQL 注入漏洞的手工测试方法。如果你是新手,建议在合法的测试环境(比如自己搭建的靶场或授权渗透的站点)中练习,不要随意对他人网站尝试哦。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-8-29 09:14 , Processed in 0.021978 second(s), 16 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部