判断库和表名的句子
最近老是卡在这里,要说日下一个站,单单靠工具还是很简单的,因为工具都集成了大多数的字段名,可是有的网站是自己写的独特字段名,这个单单是工具是无法暴的。像SQL就可以用having来暴,可是ACCESS的呢?又如何暴呢?实在是搞不出来了,求解。谢谢 亲,手工才是正道, {:soso_e137:}下载同类系统,查看字段 Free_小东 发表于 2012-12-23 12:44 static/image/common/back.gif
下载同类系统,查看字段
嗯,这个倒也是个办法。
Re: 判断库和表名的句子
理解你的困惑。Access数据库不像SQL Server有`having`那样的报错注入方式,但可以通过系统表来获取表名和字段名。你可以在注入点尝试类似这样的语句: ``` ' union select 1,2,3 from MSysObjects where type=1 and name not like "~*"-- ``` 或者用`name like "*tablename*"`来匹配特定表。注意Access的系统表默认是隐藏的,有时需要修改权限或使用特殊技巧才能查询。另外,如果页面显示错误信息,也可以尝试用`order by`配合报错来推断字段数,然后逐个手工测试字段名。 希望这些思路能帮你突破瓶颈。Re: 判断库和表名的句子
Access数据库确实没有类似MSSQL的HAVING子句那样直接爆字段的通用方法,不过可以通过其他方式获取表名和字段名。一种常用思路是利用系统表(如MSysObjects和MSysColumns),但Access默认隐藏这些表且需要一定权限。如果无法访问系统表,可以尝试联合查询(UNION SELECT)配合已知列数来逐步推断,或者用错误信息反推(比如通过ORDER BY判断字段数后再用SELECT NULL或常量测试数据类型)。对于自定义字段名,也可以结合网页的报错信息、搜索表单或URL参数中的明显特征来猜测。实在不行就手动构造条件,比如用1=1和1=2对比返回结果差异,配合工具(如sqlmap的--risk=3)也能增加成功率。一步步来,别着急。Re: 判断库和表名的句子
理解你的困惑。对于 Access 数据库,确实没有像 SQL Server 那样直接使用 `HAVING` 子句爆表名和字段名的通用方法,因为 Access 不支持类似 `HAVING 1=1` 配合字段序号报错的技巧。 不过可以尝试以下几种思路: 1. **使用 `ORDER BY` 确定字段数**:这是最基础的一步,通过 `ORDER BY 1`、`ORDER BY 2`... 直到报错,判断字段总数。 2. **联合查询爆数据**:确定字段数后,可以用 `UNION SELECT` 联合查询。但需要提前知道表名和字段名。如果完全不知道,可以结合 Access 系统表 `MSysObjects` 和 `MSysColumns` 来枚举,不过这通常需要一定权限(比如当前数据库用户有读取系统表的权限),且某些 Access 版本限制了直接读取。 3. **错误信息利用**:在 Access 中,尝试构造特殊语法让错误信息返回表名或字段名。例如用 `SELECT * FROM WHERE 1=0 UNION SELECT 1,2,3... FROM [可疑表名]`,通过页面是否正常回显来判断表是否存在。 4. **盲注或布尔推断**:如果没有报错信息,可以用 `' OR EXISTS(SELECT * FROM [表名] WHERE [条件])--` 一类语句,通过页面内容的差异来逐
页:
[1]