查看: 3111|回复: 4

希望有大神能解答一下这个SQL注入问题

[复制链接]
发表于 2016-1-29 11:20:56 | 显示全部楼层 |阅读模式
悬赏5i币已解决

        学了一点SQL注入,想找一个网站实战一下。。。
        http://www.uyjsh.com/News/Detail.aspx?c=1139
然后找到一个没什么 防火墙的网站,可是出现这种状况还是第一次见,不知各路大神应该如何处理?
输出'出现异常。

QQ图片20160129111105.png

于是可能会有注入点

然后输入 and 1=1
QQ截图20160129111126.png

没想到and 1=1 和 and 1=2 输出结果都是一样。。。。
字符串错误,好吧也许这个参数字符型的
那我就试试字符串参数吧

QQ截图20160129111159.png

但是字符串也不行,依然是和上面一样的异常。字符串错误。

现在有点不明白,究竟是为什么这样?
希望大神解释解释?
是他们用了参数化查询做了防御还是说这个参数根本没经过数据库?还是说应该使用'%%'这样的符号?还是有其他方法吗?

最佳答案

查看完整内容

没过滤,但是他把string转换成int了,换言之就是你输入所有字符串都会转化成数字。
回复

使用道具 举报

发表于 2016-1-29 11:20:57 | 显示全部楼层
没过滤,但是他把string转换成int了,换言之就是你输入所有字符串都会转化成数字。

点评

我看见了。后来我自行看了一下异常输出,明白了。 行 23: BindData(Convert.ToInt32(Request["id"]),"1"); 谢谢!  详情 回复 发表于 2016-1-29 15:17
回复

使用道具 举报

头像被屏蔽
发表于 2016-1-29 12:10:56 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2016-1-29 15:17:17 | 显示全部楼层
wuyan 发表于 2016-1-29 14:24
没过滤,但是他把string转换成int了,换言之就是你输入所有字符串都会转化成数字。 ...

我看见了。后来我自行看了一下异常输出,明白了。
行 23:                 BindData(Convert.ToInt32(Request["id"]),"1");
谢谢!
回复

使用道具 举报

发表于 3 天前 | 显示全部楼层

Re: 希望有大神能解答一下这个SQL注入问题

从你的描述来看,输入单引号触发异常说明这个参数确实被传递到了数据库端,但 `and 1=1` 和 `and 1=2` 返回相同结果,这通常意味着: 1. 参数可能是数字型,但 `and` 后的条件被数据库忽略或未正确闭合(比如语句被截断、注释掉了)。 2. 网站可能使用了参数化查询(预编译),这样注入的 SQL 会被当作参数值而非代码执行,所以无论你加什么条件都不会改变查询逻辑。 3. 也有可能这个参数根本就不是直接拼接到 SQL 中的,而是被用于其他用途(比如调用存储过程、拼接后又被过滤等)。 你可以尝试以下方法进一步判断: - 输入 `1139-0` 看看是否返回相同页面(判断是否为数字型)。 - 尝试 `c=1139` 后面加 `'` 并观察具体报错信息(如果可以显示详细错误),看能否推断出语句结构。 - 试试使用 `' AND SLEEP(5)--` 这类基于时间的注入,如果页面有延迟说明存在注入点。 - 如果怀疑是参数化查询,则基本无法通过常规注入利用,可能需要寻找其他入口或参数。 建议先从简单的数字型闭合和报错信息入手,逐步定位。如果确实无法注入,说明防御做得到位,也算是学到一种实战经验。
回复

使用道具 举报

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

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

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

官方核心成员

关注微信公众号

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

GMT+8, 2026-5-23 02:40 , Processed in 0.024187 second(s), 20 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部